我有一个命令,我从命令行运行,它带有两个参数,-tzusb和-e。 我已经转换了它,以便在django视图上调用它。 我有一点小故障, 如何将此参数传递给我在视图中的management.call_command函数? 这是我对此的看法
def tzusbcsv(request):
management.call_command('artifact_db_loader','artefacts')
return render_to_response('html/upload.html')
答案 0 :(得分:16)
在您的命令中,您应找到如下所示的选项定义:
make_option('-tzsub', dest='tzsub', action='store_true', help='Help description...')
make_option('-e', dest='e', action='store_true', help='Help description...')
查看它们并考虑每个的“dest”参数。假设您为-tzsub定义了dest ='tzsub',为-e定义了dest ='e'(如上例所示),您应该以这种方式调用命令:
management.call_command('artifact_db_loader','artefacts', tzsub=True, e=True)
这与从控制台调用命令相同:
python manage.py artifact_db_loader artefacts -tzsub -e
当然,如果参数需要任何参数(因此你在选项定义中有action ='store'),只需用你需要的值替换boolean参数。例如:
management.call_command('artifact_db_loader','artefacts', tzsub='wow!', e=7)
这与以这种方式调用命令相同:
python manage.py artifact_db_loader artefacts -tzsub "wow!" -e 7