关于夹具的Django测试抱怨

时间:2013-10-16 23:12:41

标签: django django-models django-testing django-fixtures

转储数据python manage.py dumpdata --format json --indent 4 --exclude auth.permission --exclude contenttypes > app/fixtures/app_test_data.json

运行python manage.py测试应用程序,我收到以下错误:

IntegrityError: Problem installing fixtures: The row in table 'django_admin_log' with       primary key '517' has an invalid foreign key: django_admin_log.content_type_id contains a value '28' that does not have a corresponding value in django_content_type.id.

有什么想法吗?我使用dumpdata / Django的测试运行器有很多类似的问题。

2 个答案:

答案 0 :(得分:1)

如果:

  1. 您只对从知道此问题之前生成的json中恢复信息感兴趣
  2. 您不关心管理日志的数据
  3. 您(或其他人)使用以下命令生成了json,不包括auth.permission和contenttypes:python manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json
  4. 您可以使用文本编辑器恢复json中捕获的信息,打开文件并删除与a​​dmin.logentry模型关联的元素。

    这对我有用!

答案 1 :(得分:0)

如果您在示例中排除了contenttype应用,则可能无法导出任何具有针对该应用的foreginkey的应用。删除--exclude contenttypes可能会使其正常工作。