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 相关文章推荐
用python读写excel的方法
Nov 18 Python
Python httplib模块使用实例
Apr 11 Python
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
May 15 Python
Python解惑之整数比较详解
Apr 24 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
在python中按照特定顺序访问字典的方法详解
Dec 14 Python
python 定时任务去检测服务器端口是否通的实例
Jan 26 Python
Python对象转换为json的方法步骤
Apr 25 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
Jun 19 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
Python如何给函数库增加日志功能
Aug 04 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 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实现多级分类生成树的方法示例
2017/02/07 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
python判断字符串是否纯数字的方法
2014/11/19 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
python map比for循环快在哪
2020/09/21 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
Python requests HTTP验证登录实现流程
2020/11/05 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
史泰博(Staples)中国官方网站:办公用品一站式采购
2016/09/05 全球购物
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
C语言变量的命名规则都有哪些
2013/12/27 面试题
建筑设计所实习生自我鉴定
2013/09/25 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
北京英语导游词
2015/02/12 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
Javascript 解构赋值详情
2021/11/17 Javascript
Elasticsearch 基本查询和组合查询
2022/04/19 Python