Django生成数据库及添加用户报错解决方案


Posted in Python onOctober 09, 2020

Django生成数据库表时报错 __init__() missing 1 required positional argument: 'on_delete'

原因:

在django2.0后,定义外键和一对一关系的时候需要加上on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错

例如:

owner=models.ForeignKey(UserProfile)--->报错

owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) --在老版本这个参数(models.CASCADE)是默认值

参数说明:

on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选的值

CASCADE:级联删除。

PROTECT:报完整性错误。

SET_NULL:将外键设置为null,前提是允许为null。

SET_DEFAULT:将外键设置为一个默认值

SET():调用外面的值,可以是一个函数

注:一般使用CASCADE就可以了。

在使用Django添加用户时出现报错:

 django.db.utils.IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fai
 ls (`cms`.`app01_book_author`, CONSTRAINT `app01_book_author_book_id_df0ca405_fk_app01_book_id` FOREIG
 N KEY (`book_id`) REFERENCES `app01_book` (`id`))')
 [31/Mar/2019 21:20:45] "GET /addbook/ HTTP/1.1" 500 216210

解决办法,需要在setting.py文件的databases中取消外键检查:

1 DATABASES = {

DATABASES = {
   'default': {
     'ENGINE': 'django.db.backends.mysql',
     'NAME': 'cms', # 你的数据库名称
     'USER': 'root', # 你的数据库用户名
     'PASSWORD': '123456', # 你的数据库密码
     'HOST': '', # 你的数据库主机,留空默认为localhost
     'PORT': '3306', # 你的数据库端口
     'OPTIONS': {
       "init_command": "SET foreign_key_checks = 0;", # 取消外键检查
     }
   }
 }

问题解决!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
py2exe 编译ico图标的代码
Mar 08 Python
Python-基础-入门 简介
Aug 09 Python
解决python3中解压zip文件是文件名乱码的问题
Mar 22 Python
python机器学习之贝叶斯分类
Mar 26 Python
python向已存在的excel中新增表,不覆盖原数据的实例
May 02 Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python xpath表达式如何实现数据处理
Jun 13 Python
Python流程控制语句的深入讲解
Jun 15 Python
Python叠加矩形框图层2种方法及效果
Jun 18 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 Python
Python一行代码实现自动发邮件功能
May 30 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
Oct 09 #Python
python实现数据结构中双向循环链表操作的示例
Oct 09 #Python
Python collections模块的使用方法
Oct 09 #Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 #Python
Python中Selenium模块的使用详解
Oct 09 #Python
python利用platform模块获取系统信息
Oct 09 #Python
python smtplib发送多个email联系人的实现
Oct 09 #Python
You might like
PHP伪造referer实例代码
2008/09/20 PHP
PHP 金额数字转换成英文
2010/05/06 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
2013/02/17 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
Javascript 获取鼠标当前的位置实现方法
2016/10/27 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
[05:31]DOTA2英雄梦之声_第04期_光之守卫
2014/06/23 DOTA
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
Python实现爬取逐浪小说的方法
2015/07/07 Python
python万年历实现代码 含运行结果
2017/05/20 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
Python实现12306火车票抢票系统
2019/07/04 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
家长给孩子的表扬信
2014/01/17 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
分公司经理任命书
2014/06/05 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
毕业生对母校寄语
2015/02/26 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
Mysql Online DDL的使用详解
2021/05/20 MySQL
MongoDB支持的索引类型
2022/04/11 MongoDB