• 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 属性取消外键检查即可添加成功

  • 相关阅读:
    Lambda表达式
    多态的实现原理
    泛型
    tomcat
    nginx
    列举cocoa touch 常用框架
    写出你对MVC模式的理解
    写一个委托的interface
    写一个“标准”宏MIN 这个宏输入两个参数并返回较小的一个
    简介Object-C的内存管理
  • 原文地址:https://www.cnblogs.com/shijieli/p/10529419.html
Copyright © 2020-2023  润新知