使用call_command('dumpdata','>','db.json')
在终端上以python manage.py dumpdata > db.json
的形式使用此命令时,一切正常,但是尝试以编程方式使用是在问题发生时。
即
LookupError:未安装带有标签“>”的应用。
具体问题是“如何在>
函数中使用call_command
自变量。”
但更笼统地说,我在使用call_command
函数中处理此符号时是否存在一些误解?
答案 0 :(得分:1)
您使用子流程PIPE重定向您的输出...您可以将>
作为命令传递给子流程调用,但是它将被解释为原义'>'
而不是重定向...因此它正在尝试为名为“>”的表转储数据,该表显然不存在您的数据库中
如果只想将转储数据输出到文件,则可以使用-o
标志(请参见https://docs.djangoproject.com/en/2.1/ref/django-admin/#cmdoption-dumpdata-output)
call_command('dumpdata','-o','db.json')
或直接使用输出重定向,如此处所示(https://docs.djangoproject.com/en/2.1/ref/django-admin/#output-redirection)
with open('/path/to/db.json',"wb") as f:
management.call_command('dumpdata', stdout=f)