2016-12-13 3 views
0

Я переезжаю в Django1.10 от Джанго 1.6.11 (я знаю, что это очень старое. Но, наконец, переход к последней версии)Как создать label_command ого django1.10

Моих команд управлений ломаются.

class Command(LabelCommand): 
    label = 'filename' 

    def add_arguments(self, parser): 
     parser.add_argument('filename', nargs='+', type=str) 

    def handle_label(self, filename, **options): 
     print filename 

Правильно ли это? Выше не работают, как ожидается, т.е.

+0

Метод должен быть назван 'handle', а не' handle_label'. Сначала будет легче обновить до 1,8 LTS, а не перейти до 1.10. Это даже стоит проверить с 1.7, чтобы убедиться, что вы не пропустите никаких предупреждений об амортизации. – Alasdair

+0

Что вы имели в виду под словом?, Можете ли вы дать ошибку, которую вы получаете? –

ответ

1

Для меня следующая работали: изменение

parser.add_argument('filename', nargs='+', type=str) 

в

parser.add_argument('args', metavar=self.label, nargs='+') 

линия, которую я скопировал непосредственно django/django/core/management/base.py при креплении моего LabelCommands при переходе от 1,7 до 1.10.7.

Хотя то, что вы можете сделать, это добавить заменитель линия выше

super(Command, self).add_arguments(parser) 

поддерживать прямую совместимость.

Смежные вопросы