Аргумент команды управления 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]
.