django admin 添加用户出现外键约束错误

今天在做mxonline项目时,注册了用户表进admin后,想在后台添加一个用户试试,结果出现了错误,经过一番搜索发现以下两个解决方法,不过我只用了一种

报错信息:

IntegrityError: (1452, u‘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`))‘)

具体解决方法:

方法1:在settings.py文件中,数据库的配置参数中设置关闭外键检查

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.mysql‘,
        ‘NAME‘: "mxonline",
        ‘USER‘: "root",
        ‘PASSWORD‘: "123",
        ‘HOST‘: ‘‘,
        ‘OPTIONS‘: {
            "init_command": "SET foreign_key_checks = 0;",
        }
    }
}

方法2:将userprofile表中的数据复制 到auth_user表中,即可生成新用户。

参考链接:

https://www.imooc.com/wenda/detail/382273

https://www.cnblogs.com/shijieli/p/10529419.html

原文地址:https://www.cnblogs.com/welisit/p/10850641.html

时间: 2024-10-10 20:19:02

django admin 添加用户出现外键约束错误的相关文章

mysql SQL设置外键约束ON DELETE CASCADE

第一步:删除原有的外键约束 ALTER TABLE child_table DROP FOREIGN KEY `FK_Reference_2` ; 第二步:添加新的外键约束,增加ON DELETE CASCADE ALTER TABLE child_table ADD CONSTRAINT `FK_Reference_2` FOREIGN KEY (`parent_id` ) REFERENCES parent_table (`parent_id` ) ON DELETE CASCADE ON

Oracle表中添加外键约束

添加主键约束: ALTER TABLE GA_AIRLINE ADD CONSTRAINT PK_AIRLINE_ID PRIMARY KEY(AIRLINE_ID); 有三种形式的外键约束: 1.普通外键约束(如果存在子表引用父表主键,则无法删除父表记录) 2.级联外键约束(可删除存在引用的父表记录,而且同时把所有有引用的子表记录也删除) 3.置空外键约束(可删除存在引用的父表记录,同时将子表中引用该父表主键的外键字段自动设为NULL,但该字段应允许空值) 这三种外键约束的建立语法如下: 例如

SQL批量删除用户表(先删除所有外键约束,再删除所有表)

--批量删除用户表 --1.删除外键约束DECLARE c1 cursor for     select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '    from sysobjects     where xtype = 'F'open c1declare @c1 varchar(8000)fetch next from c1 into @c1while(@@fetch_status=0

理解外键约束

--自定义账户访问别的用户的表 select * from scott.emp; select * from scott.dept; --foreign key 外键约束 --创建班级表 create table t_class( cid number(6), cname varchar2(12) ) --方式三:添加班级约束 alter table t_class add constraints pk_class primary key(cid); alter table t_class mo

mysql的外键约束

创建表格: #首先登录mysql mysql -uroot 打开一个数据库 mysql>use db1; 创建一个父表,我们命名为province, mysql> create table province ( -> id smallint auto_increment key, -> name varchar(10) NOT NULL -> ); 创建一个子表,命名为student,其中其pid引用来自province的id, mysql> create table

外键约束 以及 数据库中实体的对应关系(1==1,1==n,n==n)

1.1.1 外键约束 Create database day16; Use day16; 创建部门表: create table dept( did int primary key auto_increment, dname varchar(20) ); insert into dept values (null,'研发部'); insert into dept values (null,'教研部'); insert into dept values (null,'市场部'); 创建员工表: c

牛腩新闻发布系统---外键约束下如何删除记录

一.为什么使用外键? 查了些资料,八个字"保持完整性.一致性",结合我之前做的重构机房收费系统,我的理解是"防止相关表中数据没有关联而变得孤立,最终导致数据冗余",得出这个结论是上次让贾丽敏帮忙点系统时候我最深刻的感受,因为我的数据库关系图中辣么多张表却没有丝毫关系-- 既然官方解释是"完整性和一致性",就先来说明一下: 对于完整性和一致性,不少人都混为一谈了. 完整性(integrity)更多是针对实际业务来说的,比如说一个职员ID,不能在一个

MYSQL外键约束的参照操作

如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表.外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松.这里以MySQL为例,总结一下3种外键约束方式的区别和联系. 这里以用户表和用户组表为例,这是一个典型的多对一关系,多个用户对应于一个用户组. 首先创建用户组表: 创建用户组表 create table t_group ( id int not null, name varcha

MySQL外键约束

如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表. 外键是用来保证数据的完整性和一致性,通过外键的检查而使不正确的删除,插入操作失败. 不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松. 触发器同样也能完成修改或者删除操作的级联操作,2者的区别如下(自己的理解): 1.触发器会更耗资源,对原表的操作和对从表的级联操作是在一个事务中的. 2.表的数据量不大,结构不复杂时优先考虑外键约束. 3.触发器比外键约