Показать справку для команды из команды управления Django - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу показать вывод manage.py <command> help, если для выполнения команды недостаточно значащих аргументов.

Мой код выглядит так:

class Command(BaseCommand):
    def __init__(self, *args, **kwargs):
        super(Command, self).__init__(*args, **kwargs)

    def add_arguments(self, parser):
        parser.add_argument(
            'args', metavar='item', nargs='+',
            help="item = 'users'|'data'|..."
        )

    def handle(self, *args, **options):
        items = [x.lower() for x in set(args)]
        if not items:
            call_command('startapp', '--help')

call_command() похожедорогой способ вызвать помощь.Есть ли метод, который я могу вызвать на self, который будет делать то же самое?Вывод без call_command() выглядит следующим образом ...

$ python manage.py startapp
usage: manage.py startapp [-h] [--version] [-v {0,1,2,3}]
                          [--settings SETTINGS] [--pythonpath PYTHONPATH]
                          [--traceback] [--no-color] [--force-color]
                          item [item ...]
manage.py startapp: error: the following arguments are required: item

Я бы предпочел, чтобы он показывал полный вывод manage.py startapp --help, а не показывал

manage.py startapp: error: the following arguments are required: item

1 Ответ

0 голосов
/ 27 сентября 2019

Вы можете использовать self.print_help метод.Например:

    def handle(self, *args, **options):
        items = [x.lower() for x in set(args)]
        if not items:
            self.print_help('manage.py', '<your command name>')
            sys.exit(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...