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

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参数用法

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

2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    三维世界中相机的位置参数

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

    1.4K70

    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 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 应用,这个应用必须依赖

    98320

    探索 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.4K10

    如何在Django中创建新的模型实例

    在 Django 中,创建新的模型实例可以通过以下几个步骤进行,通常包括定义模型、创建模型实例、保存数据到数据库,以及访问和操作这些实例。...1、问题背景在 Django 中,可以使用 models.Model 类来创建模型,并使用 create() 方法来创建新的模型实例。但是,在某些情况下,可能会遇到无法创建新实例的问题。...例如,在下面的代码中,我们定义了一个 Customer 模型,并在 NewCustomer 视图中使用了 Customer.create() 方法来创建新的客户实例:class Customer(models.Model...2、解决方案这个问题的原因是,在 Customer 模型的 create() 方法中,并没有调用 save() 方法来将新的客户实例保存到数据库中。...中成功创建新的模型实例了。

    11910

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

    题图:by thefolkpr0ject from Instagram 前面有两篇文章简单介绍 Django 的模型,这一部分算是基础知识。...我自己近期也总做了下总结,将花大概两篇的篇幅来分享下模型的一些高级用法。 如果想熟悉 Django 的用法,我认为应该一开始要熟悉一些细节用法,后面再了解 Django 的实现原理。...2.1 ForeignKey 1) on_delete 在 Django 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, # 删除关联表中的数据时,当前表与其关联的

    72950

    Python Django开发 异常及其解决办法(一)

    5.Django makemigrations报错Field specifies on_delete=SET_NULL, but cannot be null 在进行Django开发时,定义完数据模型后要进行数据映射...这可能是因为所定义的某个模型定义了外键,而在新版的Django中外键必须指定on_delete属性,例如user = models.ForeignKey(User, verbose_name='用户',...on_delete=models.SET_NULL)此时是因为该属性指定为models.SET_NULL,即在父模型删除数据后,对应的子模型记录字段设为空,但是在定义该字段时并未允许该字段为空,因此解决方法有两种...' 这是因为django3及以上的版本中已经没有six插件,可以将django降到2版本,也可以将安装的six.py复制到django/utils目录下,操作如下: ?...在其他文件中可能还会遇到同样的错误,按照相同的方法修改即可。

    3.2K20

    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 -验证失败时应使用的错误消息。

    93330

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

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

    2.1K00

    Django学习-第七讲:django 中的常用字段、字段属性,外键和表关系、外键操作

    1. django中的常用字段 1. AutoField 映射到数据库中是int类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做id的自动增长的主键。...如果没有设置这个参数,那么将会使用模型中属性的名字。 3. default 默认值。可以为一个值,或者是一个函数,但是不支持lambda表达式。并且不支持列表/字典/集合等可变的数据结构。...因此这里我们首先来介绍下外键在Django中的使用。 类定义为class ForeignKey(to,on_delete,**options)。...第一个参数是引用的是哪个模型,第二个参数是在使用外键引用的模型数据被删除了,这个字段该如何处理,比如有CASCADE、SET_NULL等。这里以一个实际案例来说明。...=models.CASCADE) 如果模型的外键引用的是本身自己这个模型,那么to参数可以为'self',或者是这个模型的名字。

    4K30

    手动计算深度学习模型中的参数数量

    摄影:Andrik Langfield,来自Unsplash 为什么我们需要再次计算一个深度学习模型中的参数数量?我们没有那样去做。...然而,当我们需要减少一个模型中的文件大小甚至是减少模型推理的时间时,我们知道模型量化前后的参数数量是派得上用场的。(请点击原文查阅深度学习的高效的方法和硬件的视频。)...计算深度学习模型中可训练参数的数量被认为是微不足道的,因为你的代码已经可以为你完成这些任务。但是我依然想在这里留下我的笔记以供我们偶尔参考。...Bidirectional from keras.models import Model 建立模型后,使用model.count_params()来查看有多少参数是可训练的。...RNNs g, 一个单元中的FFNNs的数量(RNN有1个,GRU有3个,LSTM有4个) h, 隐藏单元的大小 i,输入的维度/大小 因为每一个FFNN有h(h+i)+h个参数,则我们有 参数数量=

    3.7K30

    Django中的多态模型概念、使用场景以及如何实现多态模型

    在Django开发中,经常遇到需要建立不同类型的模型之间的关系的情况。而使用多态模型可以帮助我们更好地管理这些复杂的关系。本文将介绍Django中的多态模型概念、使用场景以及如何实现多态模型。...图片什么是多态模型?多态模型是指在一个模型中可以存储不同类型的对象,并能够根据对象的类型执行特定的操作。通常,多态模型由一个父模型和多个子模型组成,每个子模型都可以具有不同的字段和行为。...多态模型的实现方法在Django中,我们可以使用两种方法来实现多态模型:抽象基类和第三方库。方法一:抽象基类Django的抽象基类是一种用于定义模型共享字段和行为的方式。...以下是使用 django-polymorphic 实现多态模型的示例:首先,安装 django-polymorphic:pip install django-polymorphic然后,在Django的设置文件中添加以下配置...本文介绍了多态模型的概念、使用场景以及两种实现方法:抽象基类和使用第三方库。通过灵活应用多态模型,在开发过程中可以更好地处理不同类型的数据。

    34320

    Django 学习笔记之模型(上)

    顺便补充下本文用的一些工具的版本:Python 版本是 3.6,Mysql 版本是 5.5 1 模型是什么 在 Web 应用中,数据一般存储到数据库中。Django 中的模型层是跟数据库打交道的层次。...模型层中可能会有多个模型,每个模型(每个 app 中的 models.py 中每个类都是一个模型)都对应着数据库中的唯一一张表。...1)ForeignKey 表示属于模型间关系中的多对一关系。在我们的范例模型中,一家出版社 publisher 可以出版很多书 Book。...on_delete 现在可以用作第二个位置参数(之前它通常只是作为一个关键字参数传递). 在Django 2.0中,这将是一个必传的参数。...3.4 字段选项 有些字段会有些特殊参数,但所有字段类型都又些通用的可选选项。先是常用的可选选项。 1)null :如果该参数设置为 True,Django将会把数据库中的空值保存为 NULL。

    1.8K30
    领券