Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >django数据库迁移时候异常

django数据库迁移时候异常

作者头像
小小咸鱼YwY
发布于 2020-06-19 08:04:36
发布于 2020-06-19 08:04:36
57000
代码可运行
举报
文章被收录于专栏:python-爬虫python-爬虫
运行总次数:0
代码可运行

django数据库迁移时候异常

一.错误信息

Django在根据models生成数据库表时报 init() missing 1 required positional argument: 'on_delete'

二.原因

在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错: TypeError: init() missing 1 required positional argument: 'on_delete'

三.解决方法

加上字段

举例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
举例说明:
user=models.OneToOneField(User)
owner=models.ForeignKey(UserProfile)
需要改成:
user=models.OneToOneField(User,on_delete=models.CASCADE) --在老版本这个参数(models.CASCADE)是默认值
owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) --在老版本这个参数(models.CASCADE)是默认值
参数说明:
on_delete有CASCADEPROTECTSET_NULLSET_DEFAULTSET()五个可选择的值
CASCADE:此值设置,是级联删除。
PROTECT:此值设置,是会报完整性错误。
SET_NULL:此值设置,会把外键设置为null,前提是允许为nullSET_DEFAULT:此值设置,会把设置为外键的默认值。
SET():此值设置,会调用外面的值,可以是一个函数。
一般情况下使用CASCADE就可以了。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-09-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Django——图书管理系统(六)
本文将讲述设置外键操作,关于外键的更多知识,大家可以看看数据库的知识。当然我依旧会在注释中做出一些解释。
zy010101
2021/01/21
6290
django_mysql_配置
1. 创建一个新的应用,为booktest,在models.py 文件中定义模型类,然后去setting注册应用
py3study
2020/01/16
1.7K0
django-ForeignKey,OneToOneField,ManyToManyField
进入到django自带的related.py中,可以看到 1.ForeignKey 初始化的参数有: to, on_delete, related_name=None, related_query_name=None,limit_choices_to=None, parent_link=False, to_field=None, db_constraint=True, **kwargs 假设我们有: class Author(models.Model): author = models.Char
西西嘛呦
2020/08/26
7830
Django官方文档小结(一) -- Models模型
在生成数据库时,Django追加"_id"字段名称来创建其数据库列名,可以通过指定显式更改此内容db_column
Autooooooo
2020/11/09
9180
DRF项目(一)创建rest下面,并且进行配置,建模,往数据库添加数据
设置好配置之后,首先需要进行建模,在model.py里面进行建模 写好代码之后要进行迁移到数据库
一写代码就开心
2021/03/02
8030
DRF项目(一)创建rest下面,并且进行配置,建模,往数据库添加数据
Django在根据models生成数据库表时报 __init__() missing 1 required positional argument 'on_d
将有ForeignKey的代码改为: blog = models.ForeignKey(Blog,on_delete=models.CASCADE,) 即在外键值的后面加上 on_delete=models.CASCADE
星痕
2018/09/12
5030
Django model,baseModel基类, migrate移行
比如,create_user. create_datetime, update_user, update_datetime, delete_flag etc
刀枪不入de王二花
2022/08/07
1.3K0
Django model,baseModel基类, migrate移行
Django 系列博客(十三)
int 自增列,必须填入参数 primary_key=True。当 model 中如果没有自增列,则会自动创建一个列名为 id 的列。
py3study
2020/01/22
1.5K0
Django中的关系映射
级联删除,例如员工表中一项数据是部门ID,部门ID是部门表的主键,如果是级联删除,当删除了部门A的时候,会把所有属于部门A的员工都给删除。
Yuou
2022/09/26
2.1K0
Django——模型Model
对象关系映射(Object Relation Mapping)实现了关系和数据库之间的映射,隐藏了关系数据访问的细节,不需要再编写SQL语句
羊羽shine
2019/05/28
8980
Django 学习笔记之模型高级用法(上)
前面有两篇文章简单介绍 Django 的模型,这一部分算是基础知识。我自己近期也总做了下总结,将花大概两篇的篇幅来分享下模型的一些高级用法。
猴哥yuri
2018/08/16
2.3K0
博客将 Django 1.11+ 升级到 Django 2.2+ 遇到的问题及规避方法
之前就有人一直催我把博客的 Django 升级到 Django 2.0 以上,但是我一直懒得升级,因为我早就看过 Django 2.x 版本和 1.11.x 版本,其实没有太多的不同,所以没有找到需要升级的必要。但是,秉着向新技术看齐的态度,我还是花了些时间(大概半天)把博客依赖的 Django 升级到当前最新版的 Django 2.2.6 版本了,在升级的过程中也遇到了很多问题,这些问题也是之前考虑到的,所以基本都迎刃而解了,这篇文章就分享一下升级的过程。
Hopetree
2022/09/26
1.2K0
【云+社区年度正文】Django从入门到精通No.2----模型
学过orm系统自然之道模型的重要性,很多web站点都需要与数据库交互,这个时候模型的设计就显得尤为重要,一个好的模型会使得项目方便管理并且易于维护,比如我们学过的flask,里面的sqlalchemy就是这样一个优秀的模块,通过它可以快速和数据库建立通道,从而使得web编程更为高效,本文主要讲解django的模型。
Python进阶者
2020/11/27
2.5K0
【云+社区年度正文】Django从入门到精通No.2----模型
Django model 层之Models与Mysql数据库小结
下载地址:https://www.python.org/downloads/release/python-340/
授客
2020/07/22
2.6K0
四、Django关系表字段介绍
关系表介绍及使用 一对一关系 xx = models.OneToOneField(to='表名',to_field='字段名',on_delete=models.CASCADE) #on_delete:删除时的一些级联效果,to_field可以不写,默认是关联到另一张表的主键,on_delete在1.x版本的django中不用写,默认是级联删除的,2.x版本的django要写. 增加数据 方式1 new_author_detail = models.AuthorDetail.objects.cr
Dreamy.TZK
2020/04/09
6270
django Foreignkey 之 on_delete
on_delete 指的是通过 ForeignKey 连接起来的当前对象被删除后,外键字段进行的操作。
卓越笔记
2023/02/18
2780
Django REST 框架详解 03 | 模型建立与表设计
假设需求,图书管理系统: Book: name, price, img, authors, publish, is_delete, create_time Publish: name, address, is_delete, create_time Author: name, age, is_delete, create_time AuthorDetail: mobile, author, is_delete, create_time
白墨石
2021/01/12
1.1K0
Django笔记(十三)一对一,一对多,多对多之间的查询
先创建UserInfo表,再创建UserProfile表,这个UserProfile表里面有一个字段user_info ,是一对一的字段,也就是这个UserProfile表里面的user_info的字段,所有数据的都不一样,不可能一样,因为是OneToOneField,一对一
一写代码就开心
2021/12/20
3.6K0
Django笔记(十三)一对一,一对多,多对多之间的查询
Django进阶知识
django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM)。
超蛋lhy
2018/08/31
3.9K0
Django(15)外键和表关系[通俗易懂]
如果一个模型使用了外键。那么在对方那个模型被删掉后,该进行什么样的操作。可以通过on_delete来指定。可以指定的类型如下:
全栈程序员站长
2022/09/19
2.6K0
相关推荐
Django——图书管理系统(六)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档