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

作者:陈彦斌 时间:2024-01-28 22:40:00 

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;", # 取消外键检查
    }
  }
}

问题解决!!!

来源:https://www.cnblogs.com/chenyanbin/p/10630875.html

标签:Django,数据库,用户,报错,解决
0
投稿

猜你喜欢

  • python使用Pycharm创建一个Django项目

    2023-11-01 22:33:13
  • (小技巧)复制消息对话框的内容

    2008-10-21 10:51:00
  • 浅谈为什么#{}可以防止SQL注入

    2024-01-27 07:19:08
  • python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例

    2022-10-12 11:37:27
  • 表单验证通用脚本(支持所有主流浏览器)

    2010-08-08 08:54:00
  • MySQL获取所有分类的前N条记录

    2024-01-21 09:39:27
  • IE7新支持的CSS属性和属性选择符

    2008-03-16 14:26:00
  • Mysql索引性能优化问题解决方案

    2024-01-27 12:14:41
  • ASP.NET中的几种弹出框提示基本实现方法

    2023-07-13 00:23:50
  • python引用DLL文件的方法

    2021-01-17 03:35:19
  • python自动化运维之Telnetlib的具体使用

    2022-09-24 22:11:16
  • MySQL锁的知识点总结

    2024-01-13 18:19:46
  • SQLServer2005安装提示服务无法启动原因分析及解决

    2024-01-16 03:02:26
  • Python文件操作和异常处理的方法和技巧

    2021-05-22 10:54:10
  • 基于Golang 高并发问题的解决方案

    2024-02-20 16:49:01
  • 详解python websocket获取实时数据的几种常见链接方式

    2023-09-20 08:22:23
  • 浅谈django 重载str 方法

    2022-12-17 18:40:33
  • MySQL8.0中的窗口函数的示例代码

    2024-01-14 12:30:26
  • NumPy中的维度Axis详解

    2021-02-12 12:39:35
  • Vue 列表上下过渡效果的实例代码

    2024-04-10 10:34:15
  • asp之家 网络编程 m.aspxhome.com