小白记录:
Django+admin 在添加模块文章时报错:
IntegrityError at /admin/interview/faq/add/ (1452, ‘Cannot add or
update a child row: a foreign key constraint fails
(qiuzhiquan
.django_admin_log
, CONSTRAINT
django_admin_log_user_id_c564eba6_fk_auth_user_id
FOREIGN KEY
(user_id
) REFERENCESauth_user
(id
))’)
之前数据库中的表被我不小心删除了,重建后可能有外键连接不妥的问题,先仔细检查了外键:
设置的外键与另一个表中的唯一索引列(一般是主键)中的值不匹配(√)
生成外键时的名称是唯一的,一个库里面只能有一个相同名称的外键(√)
总而言之对admin的数据库构建掌握不是很透彻,干脆就先偷个懒,在setting文件的databases中添加以下代码取消外键检查
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'zhq2',
'USER': 'root',
'PASSWORD': '211314',
'HOST': '127.0.0.1',
'PORT': 3306,
# 取消外键的检查(admin后台添加数据会报错)
'OPTIONS': {
"init_command": "SET foreign_key_checks = 0;",
}
}
}
然后就可以添加成功了