Django+admin:(1452, 'Cannot add or update a child row: a foreign key constraint fails (`qiuzhiquan`.

小白记录:
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) REFERENCES auth_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;",
        }
    }
}

然后就可以添加成功了

发布了6 篇原创文章 · 获赞 0 · 访问量 87

猜你喜欢

转载自blog.csdn.net/qq_42091101/article/details/104127968