management: backport django 1.8 compatibility code (#28039)

This commit is contained in:
Frédéric Péters 2018-11-15 23:24:35 +01:00
parent 7e9287ac48
commit c192ea99a7
1 changed files with 8 additions and 4 deletions

View File

@ -23,10 +23,14 @@ def run_command_from_argv(command, argv):
command._called_from_command_line = True
parser = command.create_parser(argv[0], argv[1])
options = parser.parse_args(argv[2:])
cmd_options = vars(options)
# Move positional args out of options to mimic legacy optparse
args = cmd_options.pop('args', ())
if command.use_argparse:
options = parser.parse_args(argv[2:])
cmd_options = vars(options)
# Move positional args out of options to mimic legacy optparse
args = cmd_options.pop('args', ())
else:
options, args = parser.parse_args(argv[2:])
cmd_options = vars(options)
handle_default_options(options)
try:
command.execute(*args, **cmd_options)