Небольшое предложение по определению команд (имя ключа, dest
) и обработке значений по умолчанию (в make_option
и в команде):
class Command(BaseCommand):
option_list = BaseCommand.option_list + (
make_option('--del',
action='store_true',
help='Delete all polls.',
dest='your_name_for_delete',
default=False),
make_option('--close',
action='store_true',
help='Close all polls.'),
)
def handle(self, close, *args, **options):
if options.get('your_name_for_delete'):
Poll.objects.delete()
if options.get('close', False):
Poll.objects.update(closed=True)
В коде Django вы найдете «аргументы ключевых слов» (**kwargs
), часто называемые **options
, что более наглядно (я придерживаюсь этого соглашения об именах).
Значение по умолчанию может быть указано в make_option или с помощью метода dict.get
,
который допускает значение по умолчанию.
Нет никаких причин, по которым вы не используете оба значения по умолчанию, если ваш метод Command.handle
вызывается вручную, где в словаре **options
эта запись может отсутствовать.