首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

缺少1个必需的位置参数: django模型中的'on_delete‘

在Django模型中,'on_delete'是一个必需的位置参数,用于指定当关联的对象被删除时,该字段应该如何处理。它可以接受以下几种选项:

  1. CASCADE(级联删除):当关联的对象被删除时,该字段也会被删除。这是默认选项。
  2. PROTECT(保护):当关联的对象被删除时,会引发ProtectedError异常,阻止删除操作。
  3. SET_NULL(设置为NULL):当关联的对象被删除时,该字段会被设置为NULL。前提是该字段允许为NULL。
  4. SET_DEFAULT(设置为默认值):当关联的对象被删除时,该字段会被设置为默认值。前提是该字段有默认值。
  5. SET():当关联的对象被删除时,该字段会被设置为指定的值。可以是一个具体的值或一个可调用对象。
  6. DO_NOTHING(不采取任何行动):当关联的对象被删除时,什么也不做。需要注意的是,如果没有指定任何操作,将会引发IntegrityError异常。

这个参数的作用是确保数据库的完整性,避免出现无效的关联。在使用Django模型时,我们需要根据具体的业务需求选择合适的'on_delete'选项。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足各种业务需求。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云数据库(TencentDB):提供高性能、可扩展的数据库服务,支持多种数据库引擎。详情请参考:https://cloud.tencent.com/product/cdb
  • 腾讯云对象存储(COS):提供安全可靠的云端存储服务,适用于各种数据存储需求。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等。详情请参考:https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django数据模型关于on_delete使用

1、常见使用方式(设置为null) 2、关于别的属性介绍 CASCADE:这就是默认选项,级联删除,你无需显性指定它。...SET_NULL: 置空模式,删除时候,外键字段被设置为空,前提就是blank=True, null=True,定义该字段时候,允许为空。...SET_DEFAULT: 置默认值,删除时候,外键字段设置为默认值,所以定义外键时候注意加上一个默认值。...SET(): 自定义一个值,该值当然只能是对应实体了 3、补充说明:关于SET()使用 **官方案例** def get_sentinel_user():     return get_user_model...class MyModel(models.Model):     user = models.ForeignKey(         settings.AUTH_USER_MODEL,         on_delete

1.2K10

Django 2.2文档系列】Model 外键on_delete参数用法

场景 我们用DjangoModel时,有时候需要关联外键。关联外键时,参数:on_delete几个配置选项到底是干嘛呢,你知道吗? 参数介绍 models.CASCADE 级联删除。...Django会模拟SQL约束行为,在删除此条数据时,同事删除外键关联对象。...比如:用户有一个外键关联是用户健康记录表,当用户删除时,配置了这个参数健康记录表中跟这个用户有关数据也会被删除。...如果后端数据库有强制关联操作,这是容易报错:IntegrityError,除非你在数据库手动添加了SQLON DELETE约束。...欢迎查看我这个系列其他文章: django-admin和manage.py用法[1] 编写自定义manage.py 命令[2] Django组件——forms组件[3] 还有更多内容,请查看Bigyoung

1.9K10

三维世界相机位置参数

上篇文章带读者完成了一个3d弹弹球加强版,读者顺便了解了下灯光和阴影基本用法,关于相机位置参数问题,我们在前文只是简单提过,本篇文章,想和读者分享下相机位置参数问题。...在3d弹弹球一文,我们创建了一个plane平面,平面上有一个球弹来弹去,本文因为只考虑相机问题,因此我将页面模型简化,只留下坐标系和弹弹球,去掉plane,代码如下: var scene = new...关于相机位置参数,这里主要介绍三个:position、up以及lookAt。...那么如何固定手机位置呢?这就需要另外一个参数up。...up up用来指定相机快门位置,相机快门一般在相机上方,指定了快门位置,相当于相机就不能旋转了,这样相机位置就算彻底固定死了,默认情况下,相机快门位置为(0,1,0),即相机是垂直摆放(就是本文图一读者看到效果

1.3K70

django 字段类型_access数据库类型是

有两个必需参数:max_digits数字允许最大位数,此数字必须大于或等于decimal_places。decimal_places表示与数字一起存储小数位数。...将参数附加到MEDIA_ROOT路径,已形成本地文件系统上将存储上传文件位置。 storage:一个存储对象,用于处理文件存储和检索。...:与模型相关类和on_delete选项,如果创建地柜关系(一个与自身具有多对一关系对象)则使用model.ForeignKey(‘self’,on_delete=models.CASCADE)。...当删除由a引用对象时,Django将模拟on_delete参数指定SQL约束行为。...(23) ManyToManyField 多对多关系表,需要一个位置参数:与模型相关类,工作原理与ForeignKey完全相同,包括递归和惰性关系。

3.9K30

django 模型计算字段实例

') given_name = models.CharField(max_length=20, verbose_name='名') def name(self): # 计算字段要显示在修改页面只能定义在只读字段...self.given_name) admin.py class PersonAdmin(admin.ModelAdmin): def name(self,obj): # 这个方法会得到两个参数...,第一个是类本身一个实例(app.PersonAdmin),第二个是这个类管理模型实例(Person) return '%s,%s' % (self.family_name, self.given_name...(Person, PersonAdmin) 补充知识:django如何在 search_fields 包含外键字段 在search_fields中加入一个外键名字是不能查询,要写成(外键名__外键字段名...,而不是电脑分辨率,就可以搜索'手机 分辨率' 以上这篇django 模型计算字段实例就是小编分享给大家全部内容了,希望能给大家一个参考。

4.4K20

博客将 Django 1.11+ 升级到 Django 2.2+ 遇到问题及规避方法

但是,秉着向新技术看齐态度,我还是花了些时间(大概半天)把博客依赖 Django 升级到当前最新版 Django 2.2.6 版本了,在升级过程也遇到了很多问题,这些问题也是之前考虑到,所以基本都迎刃而解了...' 报错原因其实一看就能知道,这个地方是说关于一些模型在一对一关联和一对多关联(外键)时候需要指定 on_delete 参数才行,多对多没有这个设置。...因为在 Django 1.x 版本,这个参数是有默认值,但是 Django 2.x 没有指定,所以需要显示设定一个值。...报错分析,这个是 django 2.x 里面会出现问题,当 urls.py 里面使用 include 时候,当有 namespace 参数时候,第一个参数需要添加成元组,其中第二个参数是 app_name...migrate 报错 由于 django 2.2+ auth 应用数据库迁移文件比 1.11+ 版本多了几个,所以按理需要把这几个迁移文件添加到数据库,但是由于我添加了 oauth 应用,这个应用必须依赖

93720

django ListView使用 ListView获取url参数值方式

页面所在目录' template_name='caradmin/colortags/colortags.html' #自定义查询方法 def get_queryset(self): #获取url 值...后参数传入视图中,在视图中先将数据通过传递分类进行筛选,再将筛选后数据传递到页面进行渲染。 如果我们此时还做了分页展示,则将后端处理数据时分类值也传到页面,在我们点击分页时跳转地址?...后将分类值作为参数再次传递回后端进行处理。 第二种情况,只按照关键字查询: 和分类查询类似,将文本输入标签(例如text类型input)绑定事件,获取到输入值,将获取值作为地址?...后参入传递到后端。在后端通过地址后参数将数据进行模糊(constatins)筛选,再将筛选后商品和参数传递回前端,将数据在前端进行展示 当我们点击分页时,将查询值作为参数传递回后端。...ListView使用 ListView获取url参数值方式就是小编分享给大家全部内容了,希望能给大家一个参考。

3.9K20

探索 PythonDjango 支持分布式多租户数据库,如 Postgres+Citus

将租户列介绍给我们想要分发缺少模型 更改分布式表主键以包含租户列 更新模型以使用 TenantModelMixin 分发数据 将 Django 应用程序更新为范围查询 准备横向扩展多租户应用程序...为了能够扩展 django,必须对模型进行一些简单更改。...在所有主键和唯一约束包含 account_id 2.1 将 account_id 包含到主键 Django 会自动在模型上创建一个简单 “id” 主键,因此我们需要通过自己自定义迁移来规避这种行为...要在你 models.py 文件做到这一点,你需要执行以下导入 from django_multitenant.mixins import * 以前我们示例模型仅继承自 models.Model...有关更多示例,请参阅 django-multitenant README。

2.1K10

【NLP】浅谈 Transformer-based 模型位置表示

从最初绝对位置编码,与单词嵌入相加作为第一层输入,再到 RPR 提出直接在注意力分数计算引入相对位置信息,并学习相对距离表示矩阵(长度固定),再到 Transformer-XL 引入偏置信息...Negative don’t 与like相对位置不同,决定了这两句话情感取向是一正一负,但在传统词袋(Bag-Of-Words BOW)模型,这两句话得到句子表征却是一致,可见单词相对位置对语义有关键性影响...作者希望借助上述绝对位置编码公式,让模型能够学习到相对位置信息。...而非 RNN 模型不需要顺序处理输入,则需要显式编码才能引入位置信息。 ? ? ? ? ? ?...另外,作者认为精确相对位置信息在超出了一定距离之后是没有必要,并且截断后会使得模型泛化效果好,即可以更好泛化到没有在训练阶段出现过序列长度上。 这里试举一例帮助理解。

1.3K10

Django 学习笔记之模型高级用法(上)

题图:by thefolkpr0ject from Instagram 前面有两篇文章简单介绍 Django 模型,这一部分算是基础知识。...我自己近期也总做了下总结,将花大概两篇篇幅来分享下模型一些高级用法。 如果想熟悉 Django 用法,我认为应该一开始要熟悉一些细节用法,后面再了解 Django 实现原理。...2.1 ForeignKey 1) on_deleteDjango 2.0 ,设置外键时需要添加一个 on_delete选项。外键本身涉及到两个表数据,况且外键在数据库是有约束行为。...所以 on_delete 参数Django 模拟 SQL 约束行为。 on_delete 有几个可选值: CASCADE:这就是默认选项,级联删除,你无需显性指定它。...对于每一个字段类型,除了 ForeignKey、ManyToManyField和 OneToOneField 这三个特殊关系类型,其第一可选位置参数都是 verbose_name。

2K30

Django——模型Model

ORM简介 对象关系映射(Object Relation Mapping)实现了关系和数据库之间映射,隐藏了关系数据访问细节,不需要再编写SQL语句 创建模型 在models.py文件创建类 继承...(max_length=20) pub_date = models.DateField() 数据迁移 1生成迁移文件:根据模型类生成创建表迁移文件。...OK Django默认采用sqlite3数据库,最终会生成如下数据表,其中自定义表命名规则是(应用名称模型类名) DATABASES = { 'default...=models.DO_NOTHING) django 升级到2.0之后,表与表之间关联时候,必须要写on_delete参数,否则会报异常: TypeError: init() missing 1 required...positional argument: 'on_delete' on_delete参数各个值含义: on_delete=None, # 删除关联表数据时,当前表与其关联

70550

在脚本单独使用djangoORM模型详解

有时候在测试django中一些模块时,不想重新跑一整个django项目,只想跑单个文件,正好写在if __name__ == ‘__main__’: 这样也不会打扰到正常代码逻辑 方法 正常方法 大家都知道方法就是...’python manage.py shell’,当然我知道这可能不是你需要; 更好用方法 在脚本import模型前调用下面几行即可: import os, sys BASE_DIR = os.path.dirname...))) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dj_tasks.settings") # 你djangosettings文件 接下来再调用...在导入models时候,还没有在django对应环境下导入 这里导入顺序很重要 import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE...以上这篇在脚本单独使用djangoORM模型详解就是小编分享给大家全部内容了,希望能给大家一个参考。

4.8K10

Django模型类设计及展示示例详解

django设计数据模型类是基于ORM对象关系映射更方便进行数据库数据操作。...对象关系映射 把面向对象类和数据库表–对应,通过操作类和对象,对数表实现数据操作,不需要写sql,由ORM框架生成 django实现了ORM框架,在项目中与数据库之间产生桥梁作用 django数据库定义模型步骤如下...在templates文件夹创建一个index.html文件 使用django模板for循环将数据插入到html页面 ? 启动django,打开本地网址 ?...然后启动django点击本地连接 ? 接下来可以再加入模型数据库,点击学科时候可以展示那些老师以及老师介绍。实现了数据多对一或者一对多。 在models.py建立老师模型类 ?...django简单项目关于模型展示设计都完成啦!!! 总结 到此这篇关于Django模型类设计及展示示例详解文章就介绍到这了,更多相关django模型类设计及展示内容请搜索ZaLou.Cn

1.4K30

基于Django OneToOneField和ForeignKey区别详解

模型(Models)是对网站所需信息种类定义,其包含了网站存储数据重要字段和数据行为。...一般来说,一个模型对于数据库一个表单。 字段(Fields)是模型重要和唯一组成部分,他们由类别的属性值所指定。...对于每个ForeignKey,我们需要给出关联模型on_delete响应选项,即 manufacturer = models.ForeignKey( 'Manufacturer', on_delete...,若不设置则默认为字段名称 db_contraint 是否在数据库建立约束 swappable 设置是否指向一个可交换模型 OneToOneField 源码对OneToOneField设置如下..., on_delete=models.CASCADE, related_name='supervisor_of', ) OneToOneField既包含ForeignKey参数,又包含一个额外参数

2.4K20

【云+社区年度正文】Django从入门到精通No.2----模型

django从入门到精通No.2----模型 一、前言 学过orm系统自然之道模型重要性,很多web站点都需要与数据库交互,这个时候模型设计就显得尤为重要,一个好模型会使得项目方便管理并且易于维护...二、模型定义 模型可以定义储存数据字段和值,比如我们在进行表单提交时候,一些注册信息就可以利用模型来进行管理,然后统一提交到数据库。简单来说,模型是与数据库有关操作集合。...必填参数primary_key=True,则成为数据库主键,无该字段时,django自动创建,一个model不能有两个该字段。...# 要关联字段名称 on_delete=None # 当删除关联表数据时,当前表与其关联行为 - models.CASCADE...,你可以指定一个中介模型来定义多对多关系,可以将其它字段放在中介模型,源模型字段使用through参数指向中介模型

2.1K00

python测试开发django-rest-framework-93.联合唯一校验

但是同一个人针对同一个商品,只能收藏一次,于是可以用UniqueTogetherValidator联合唯一校验 收藏商品 添加商品和收藏商品 models.py 模型设计 from django.db...import models from django.contrib.auth.models import User # Create your models here. # 作者-上海悠悠 QQ交流群:...联合校验’user’, ‘goods’字段唯一性 该验证器可用于unique_together对模型实例施加约束。...它具有两个必需参数和一个可选messages参数: queryset 必需-这是应针对其强制执行唯一性查询集。 fields 必填-字段名称列表或元组,应组成唯一集合。...这些必须作为字段存在于序列化程序类。 message -验证失败时应使用错误消息。

90530
领券