簡體   English   中英

使用call_command在django dumpdata中排除多個應用

[英]Excluding multiple app in django dumpdata using call_command

我正在使用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從dumpdata中排除某些內容?

提前致謝。

您應該使用列表來傳遞這樣的參數:

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

錯誤“未安裝帶有標簽'a'的應用” ,提示Django如何處理dumpdata命令(字符串“ app1”被視為列表)。

使用這個e排除像這樣

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM