Использование argparse.REMAINDER для получения остальных параметров разбивает мои другие параметры
Итак, у меня есть этот кусок кода, который просто принимает мои параметры.
class InteractiveTenantOption(object):
def add_arguments(self, parser):
parser.add_argument("command")
parser.add_argument(
"-s", "--schema", dest="schema_name", help="specify tenant schema"
)
parser.add_argument("command_args", nargs=argparse.REMAINDER)
Команда выглядит следующим образом:
class Command(InteractiveTenantOption, BaseCommand):
requires_system_checks = []
help = "Wrapper around django commands for use with an individual tenant"
def handle(self, command, schema_name, command_args, *args, **options):
print(schema_name)
tenant = self.get_tenant_from_options_or_interactive(
schema_name=schema_name, **options
)
connection.set_tenant(tenant)
call_command(command, *command_args, *args, **options)
проблема в том, что
print(schema_name)
возвращает None для каждой команды.
До того, как я добавил
parser.add_argument("command_args", nargs=argparse.REMAINDER)
что print не возвращает None.
Например, если я запускаю:
python manage.py tenant_command test_command -s demoproject
print result before adding parser.add_argument("command_args", nargs=argparse.REMAINDER):
demoproject
print result after adding parser.add_argument("command_args", nargs=argparse.REMAINDER):
None
Почему он изменился и как я могу это исправить?
Спасибо.