I'm using call_command to launch a datadump, I would like to exclude multiple apps, so if I was not using call_command, I would do it like the django documentation tell to do it :
python manage.py dumpdata --format json -e app1 -e app2
But in call_command I don't know how I should call it :
from django.core.management import call_command
call_command("dumpdata", format="json", ?)
What is not working :
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
Is it even possible to exclude something from dumpdata using call_command ?
Thanks in advance.
You should use a list to pass the argument like this :
call_command("dumpdata", format="json", e=["app1", "app2"])
The error No installed app with label 'a', hint at how the dumpdata command is handled by Django (the string "app1" is treated as a list).