IntegrityError at /admin/users/userprofile/add/ (1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxonline`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6_
报错现象
在执行 django 后台管理的时候添加数据导致 1452 错误
报错代码
IntegrityError at /admin/users/userprofile/add/ (1452, 'Cannot add or update a child row: a foreign key constraint fails (`mxonline`.`django_admin_log`, CONSTRAINT `django_admin_log_user_id_c564eba6_fk_auth_user_id` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`))')
分析报错
因为有做 auth 的自定义扩展字段. 具体的应该是 自定义表 和 内置的 auth 表的 FK 外键无法映射导致
解决方式有两种
建立映射
取消映射检查
问题解决
这里采用第二种方式
直接在 settings 中设置 取消检查即可
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': "mxonline", "USER": "root", "PASSWORD": "123456", "HOST": "127.0.0.1", 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", } }, }
添加 OPTIONS 属性取消外键检查即可添加成功
本文来自博客园,作者:羊驼之歌,转载请注明原文链接:https://www.cnblogs.com/shijieli/p/10529419.html