How to Create Custom Django Management Commands

Blog
Spread the love

Django comes with a variety of command line utilities that can be either invoked using django-admin.py or the convenient manage.py script.

We can also add our own commands. Those management commands can be very handy when you need to interact with your application via command line using a terminal and it can also serve as an interface to execute cron jobs.

Introduction:

You are probably already familiar with commands like

python manage.py startapp

  • python manage.py startproject
  • python manage.py makemigrations
  • python manage.py migrate
  • python manage.py runserver
  • python manage.py collectstatic

To see a complete list of commands you can run the command below:

python manage.py help

We can create our own commands for our apps and include them in the list by creating a management/commands directory inside an app directory, like below:

The name of the command file will be used to invoke using the command line utility.

For example, if our command was called my_custom_command.py , then we will be able to execute it via:

python manage.py my_custom_command

Basic Example

A basic example of what the custom command should look like:

management/commands/current_time.py

Styling:

We can improve the output by setting an appropriate color to the output message.
self.stdout.write(self.style.SUCCESS(”It’s now %s” % time))

Basically a Django management command is composed by a class named command which inherits from BaseCommand.

The command code should be defined inside the handle() method.

See how we named our module current_time.py.

This command can be executed as:

python manage.py current_time

Output:

It’s now 06:35:31

bluethinkinc_blog

bluethinkinc_blog

2023-09-19

0

Leave a Reply

Your email address will not be published. Required fields are marked *

Find More Blogs

How to Add a Custom Tab to the Customer Order Detail Page in Magento 2

Spread the love Adding a custom tab to the Order Detail

Exception Handling in Java

Spread the love Introduction – Exception:An unwanted

How to add custom less file in Magento2

Spread the love Source files *.css included into layout

Spring Boot Microservices

Spread the love Microservices architecture has become

Implementation of WireMock for better testing

Spread the love WireMock is a flexible and powerful tool

Magento 2: How to selected default option in configurable options?

Spread the love Configurable products in Magento 2 allow

How To Implement Simple JWT Authentication in Django Rest Framework

Spread the love We’ll learn how to use simple JWT

Optimizing Search: Integrating Elasticsearch in Django Applications

Spread the love What is Elasticsearch? Elasticsearch is a

How to create Customer Segments

Spread the love In Magento 2, “customer

Proxy Design Pattern and Requisition List in Magento 2

Spread the love Requisition List in Magento 2 Requisition

bluethinkinc Blogs