Django自定义用户表UserProfile新增用户时出现a foreign key constraint fails

先说明环境:Python3.6.7,Django1.9,mysqlclient1.3.13

错误截图(部分):

在这里插入图片描述
如图,在向自定义用户表userProfile插入数据时,出现外键约束失败。所以接着查看数据库表
在这里插入图片描述
错误原因很明显,我们向userProfile插入数据之前,django的admin后台会自动先向django-admin-log插入一条日志记录,但此时auth_user表(系统默认表)为空,也就不会提供id字段给django_admin_user_id。

解决方式

在setting.py中修改DATABASES
在这里插入图片描述
也就是加上了‘OPTIONS’,意思是忽略外键约束。

'OPTIONS':{
            "init_command":"SET foreign_key_checks = 0;",
        }
疑问

虽然解决了问题,但还是有两个疑问:1.设置忽略外键约束,数据合法性和安全性能得到保证吗?目前能想到的手段仅仅是后期在视图中加以判断;2.为什么一开始使用manage.py创建超级用户时可以成功创建

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值