具有自定义管理命令值的多个参数

Multiple arguments with values to custom management command

如何从命令行向自定义 Django 管理命令传递带值的多个参数?

def add_arguments(self, parser):
    parser.add_argument('str_arg1', nargs='+')
    parser.add_argument('int_arg2', nargs='+', type=int)

当我运行:

./manage.py my_command str_arg1 value int_arg2 1 --settings=config.settings.local

我在 options 中得到以下值:

options['str_arg1'] = ['str_arg1', 'value', 'int_arg2']
options['int_arg2'] = [1]

尝试在文档和在线搜索解决方案和多种传递参数的方法,但没有成功。 Django 版本是 1.10.

谢谢

您定义参数的方式意味着它们是 位置 参数。没有明智的方法来拥有多个消耗未知数量值的位置参数。

修改您的解析器以将它们指定为选项:

parser.add_argument('--str-arg1', nargs='+')
parser.add_argument('--int-arg2', nargs='+', type=int)

并修改调用:

./manage.py my_command --str-arg1 value --int-arg2 1