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

时间:2017-04-10 19:22:24

标签: python django django-management-command

如何将多个参数与命令行中的值一起传递给自定义django管理命令?

TIMESTAMP=`date "+%Y-%m-%d"`
hdfs dfs -touchz /home/$USER/logs/${TIMESTAMP}.success_log

当我跑步时:

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

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

由于

1 个答案:

答案 0 :(得分:6)

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

修改您的解析器,将其指定为选项:

parser.add_argument('--str_arg1', nargs='+')
parser.add_argument('--int_arg2', nargs='+', type=int)

修改通话:

./manage.py my_command --str_arg1 value --int_arg2 1