如何将多个参数与命令行中的值一起传递给自定义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。
由于
答案 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