Я пишу приложение Django, где я ожидаю использовать многие команды management.py. Мне нравится идея функция питон, имеющие параметры со значениями по умолчанию, где вы определяете Пары как:Аргументы и аргументы аргументов ключевых слов и аргументов
def function(param1=value1)
Так я пишу мои команды управления таким образом, что вы вводите следующий образом:
python manage.py createdb user=some_user db_name=some_name
Так насколько я могу сказать, management.py команда не принимает этот тип списка аргументов, поэтому я создал помощник, чтобы сделать следующее:
def process_args(args=None):
kwargs = {}
if not args:
return kwargs
for i in args:
try:
k,v = i.split('=')
kwargs[k] = v
except ValueError, ve:
raise CommandError("Please Enter All Arguments as key=value. e.g. user=admin")
return kwargs
есть ли лучший способ сделать это?
У меня возникли проблемы с получением этой работы. Класс BaseCommand должен иметь опции, добавленные в свой список опций, чтобы он мог распознать эту опцию. Но согласно сообщению ниже, использование make_option устарело. Поэтому я хотел бы использовать argparse, но как добавить аргументы в класс BaseCommand? –
Честно говоря, я бы пошел с тем, что предложил @nrabinowitz - использовать встроенную функциональность Django при работе с Django. – Amber