具有自定义管理命令值的多个参数
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
如何从命令行向自定义 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