【问题标题】:Excluding multiple app in django dumpdata using call_command使用 call_command 在 django dumpdata 中排除多个应用程序
【发布时间】:2017-03-03 16:12:13
【问题描述】:

我正在使用 call_command 启动数据转储,我想排除多个应用程序,所以如果我不使用 call_command,我会像 django 文档告诉的那样做:

python manage.py dumpdata --format json -e app1 -e app2

但是在 call_command 我不知道我应该怎么称呼它:

from django.core.management import call_command
call_command("dumpdata", format="json", ?)

什么不工作:

call_command("dumpdata", format="json", exclude="app1")
call_command("dumpdata", format="json", exclude="app1 app2")
# CommandError: No installed app with label 'a'.

call_command("dumpdata", format="json", e="app1")
call_command("dumpdata", format="json", e="app1 app2")
# Does not fail but does not exclude anything either

call_command("dumpdata", format="json", e="app1", e="app2")
# SyntaxError: keyword argument repeated

是否甚至可以使用 call_command 从转储数据中排除某些内容?

提前致谢。

【问题讨论】:

    标签: django dumpdata


    【解决方案1】:

    你应该使用一个列表来传递这样的参数:

    call_command("dumpdata", format="json", e=["app1", "app2"])
    

    错误No installed app with label 'a',提示dumpdata命令是如何被Django处理的(字符串“app1”被视为一个列表)。

    【讨论】:

      【解决方案2】:

      使用这个 e 来排除这样的情况

           call_command('dumpdata','appname', '-etitanapp.databasebackup', format='json',indent=3,stdout=output)
      

      【讨论】:

        猜你喜欢
        • 2013-04-11
        • 2017-12-31
        • 2023-03-03
        • 1970-01-01
        • 2011-12-18
        • 1970-01-01
        • 1970-01-01
        • 2010-11-07
        • 1970-01-01
        相关资源
        最近更新 更多