如何在Django中管理.py loaddata

Ale*_*lla 11 django django-manage.py

我现在正在与这个命令战斗几个小时.

如果我做

python manage.py dumpdata --natural-foreign --> data.json
Run Code Online (Sandbox Code Playgroud)

当我加载数据时,我得到了错误

无法加载contenttypes.ContentType(pk = 19):重复键值违反唯一约束"django_content_type_app_label_76bd3d3b_uniq"DETAIL:键(app_label,model)=(misuper,stockitem)已存在.

如果我这样做的话

python manage.py dumpdata --natural-foreign --exclude=contenttypes --> data.json
Run Code Online (Sandbox Code Playgroud)

我得到一个类似的错误,但有一个̣ auth.Permission对象:

无法加载auth.Permission(pk = 55):重复键值违反唯一约束"auth_permission_content_type_id_01ab375a_uniq"

如果我这样做

python manage.py dumpdata --natural-foreign --exclude=contenttypes --exclude=auth --> data.json
Run Code Online (Sandbox Code Playgroud)

当我加载数据时,我得到了

用户匹配查询不存在

当然,我排除了auth表.

那么...... WTF可以加载数据吗?我所有的测试都取决于此.

我相信文档是不够的.我被困在这里,请帮忙.

ugo*_*san 25

试试这样:

python manage.py dumpdata --natural-foreign \
   --exclude auth.permission --exclude contenttypes \
   --indent 4 > data.json
Run Code Online (Sandbox Code Playgroud)

  • 啊,通过在 `--exclude` 和 `--indent` 中添加 `=` 来修复它,所以它变成了 `--exclude=auth.permission --exclude=contenttypes --indent=4` (3认同)
  • 对于那些从 DRF 来到这里并出现“无法加载 authtoken.Token(pk=...”错误的人:还可以通过“--exclude=authtoken.token”排除令牌对象 (3认同)