Аргумент команды управления Django

Мне нужно передать целочисленный аргумент базовой команде в Django. Например, если мой код был

from django.core.management import BaseCommand

class Command(BaseCommand):
    def handle(self, *args, **options, number_argument):
        square = number_argument ** 2
        print square

Я хотел бы сказать python manage.py square_command 4 и вернуть его 16. Есть ли способ передать аргумент через терминал команде, которую я хочу запустить?

Ответы

Ответ 1

Добавьте этот метод в свой класс Command:

def add_arguments(self, parser):
    parser.add_argument('my_int_argument', type=int)

Затем вы можете использовать свой код в коде, например:

def handle(self, *args, **options):
    my_int_argument = options['my_int_argument']

Преимущество этого в том, что вывод help автоматически генерируется для manage.py my_command --help

Ответ 2

Да. Механизм для этого описан здесь, но в принципе вы можете получить аргумент от args[0].