在我的Django管理面板中,每当我想在表中添加一些记录时,我都会收到此错误: / admin / pool / orders / add /中的IntegrityError (1452,’无法添加或更新子行:外键…
您可能由于STORAGE_ENGIENE不匹配而导致错误。我认为有一些INNODB表和一些MyISAM表。尝试将它们转换为一致的类型。
此外,如果这不是错误,那么它是由于数据库中的前向引用而引起的。如果这是原因,那么您可以通过将Django设置编辑为关闭外键检查:
DATABASES = { 'default': { ... 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", }, } }
有关详细信息,请参阅此帖子: Django“无法添加或更新子行:外键约束失败”
的 编辑: 强>
获得价值 phone 在你的 user_phone 字段,你需要使用 ForeignKey.to_field 在你的 Orders 模型为:
phone
user_phone
ForeignKey.to_field
Orders
user_phone = models.ForeignKey('Users', to_field='phone')
这是必需的,因为Django使用了主键 User 用于存储值的模型 user_phone 的 Orders 模型。使用上面提到的脚本有助于在外键字段中获取所需字段的值。
User
在这样做的同时,您需要确保这一点 phone 用户模型的字段是 unique=True 组。
unique=True
查看此链接以获取官方Django文档 to_field