3

我在加载夹具之前重置了内容类型(请参阅在 Django 中加载夹具时出现内容类型的问题)。

但无法重置内容类型:

...project_dir > manage.py 重置内容类型

您已请求重置数据库。这将不可逆转地破坏数据库“my_database”中“contenttypes”应用程序的任何数据。你确定要这么做吗?

输入“yes”继续,或输入“no”取消:yes

错误:错误:无法重置内容类型。可能的原因:

  • 数据库未运行或未正确配置。
  • 至少有一个数据库表不存在。
  • SQL 无效。

提示:查看“django-admin.py sqlreset contenttypes”的输出。那是该命令无法运行的 SQL。

完整错误:(1217,“无法删除或更新父行:外键约束失败”)

任何帮助将不胜感激。谢谢!

4

1 回答 1

0

在您发布的问题上,还有另一个答案- 使用自然键作为固定装置。

错误“无法删除或更新父行:外键约束失败”意味着无法删除内容类型行,因为有另一个对象指向该行。例如,如果有任何非空白通用外键关系就是这种情况。

如果您确实需要重置内容类型应用程序,您可以获得所需的 SQL 命令并将其更改为使用 CASCADE 语句。然而这是危险的,因为它不仅会删除内容类型,还会删除另一个表中指向内容类型的行。

所以我建议使用自然键重新创建固定装置。

于 2012-09-06T13:44:59.140 回答