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

Django在delete()之后排列模型外键属性

Django在delete()之后会对模型外键属性进行排列。

在Django中,delete()是一个用于删除数据库中对象的方法。当调用delete()方法后,Django会执行以下操作:

  1. 首先,Django会检查是否存在与该对象相关联的外键属性。外键属性是指在模型中定义的与其他模型关联的字段。
  2. 如果存在外键属性,Django会根据外键属性的定义进行相应的操作。具体操作包括级联删除、设置为空或设置默认值等。
  3. 接下来,Django会删除该对象本身。

排列模型外键属性的过程是根据外键属性的定义来进行的。在Django中,外键属性可以通过ForeignKey字段来定义。ForeignKey字段允许将一个模型与另一个模型关联起来。

在删除对象时,Django会根据ForeignKey字段的相关参数来处理外键属性。这些参数包括on_delete、null、blank等。on_delete参数用于指定删除对象时的行为,可以设置为CASCADE(级联删除)、SET_NULL(设置为空)、SET_DEFAULT(设置为默认值)等。

对于外键属性的排列顺序,Django会根据模型定义中的字段顺序来进行处理。在模型定义中,通常会先定义主键字段,然后是外键字段。因此,在delete()之后,Django会按照字段定义的顺序对外键属性进行排列。

总结起来,Django在delete()之后会对模型外键属性进行排列,具体排列顺序是根据模型定义中字段的顺序来确定的。在删除对象时,Django会根据外键属性的定义进行相应的操作,包括级联删除、设置为空或设置默认值等。

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

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

因此这里我们首先来介绍下Django中的使用。 类定义为class ForeignKey(to,on_delete,**options)。...第一个参数是引用的是哪个模型,第二个参数是使用引用的模型数据被删除了,这个字段该如何处理,比如有CASCADE、SET_NULL等。这里以一个实际案例来说明。...因此底层,Django为Article表添加了一个属性名_id的字段(比如author的字段名称是author_id),这个字段是一个,记录着对应的作者的主键。...删除操作 如果一个模型使用了。...那么在对方那个模型被删掉后,该进行什么样的操作。可以通过on_delete来指定。可以指定的类型如下: 1.CASCADE:级联操作。如果对应的那条数据被删除了,那么这条数据也会被删除。

3.9K30

django开发中取消约束的实现

# setting设置 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", } 补充知识:django-给关系传值...,删除外关系 反查: 表关系里 related_name = ‘反查name’,自己不设置,django也会默认设置为class的小写名字+_set , ex: book_set....''' 两种方法 教室ClassRoom和教室编号ClassNumber 字段django类里名(room_number)在数据库名(room_number_id) '''      # 一.1...字段django类里名(room_number)在数据库名(room_number_id)      c.save() return HttpResponse("ojbk") 多对一: 类似一对一...s.teacher.remove(x) return HttpResponse("ojbk") 以上这篇django实现在开发中取消约束就是小编分享给大家的全部内容了,希望能给大家一个参考。

3.6K10

Django 2.2文档系列】Model 中的on_delete参数用法

场景 我们用Django的Model时,有时候需要关联。关联时,参数:on_delete的几个配置选项到底是干嘛的呢,你知道吗? 参数介绍 models.CASCADE 级联删除。...Django会模拟SQL约束的行为,删除此条数据时,同事删除外关联的对象。...提醒:级联删除不会调用model级行为,但是会为所有已删除对象发送pre_delete和 post_delete信号,有用Django的信号机制的场景,要考虑这个级联删除带来影响。...models.SET_NULL 设置关联的内容为null。只有设置了null=True时可用。当数据被删除时,被关联的内容被设置为null。...models.SET_DEFAULT 将的值设置为默认值。必须设置有默认值 。 models.SET()将SET()设置的值作为的值 ,如果传递了callable,则调用它的结果。

1.9K10

django模型中有关系的表删除相关设置

0904自我总结 django模型中有关系的表删除相关设置 一.一对一 例如有Author、AuthorDetail两表 author = models.OneToOneField(to='Author...) 1)关系字段放在AuthorDetail表中:作者删除详情删除,详情删除作者保留 2)作者找详情用 related_name(detail),详情找作者用 字段(author)...=models.DO_NOTHING, ) 1)关系字段放在Book表中(多的一方):出版社删除书不动,书删除没有任何影响 2)出版社找书用 related_name...(books),书找出版社 字段(publish) 3)db_constraint断开表关联,on_delete规定逻辑关联删除动作,models.DO_NOTHING关联无动作 三.以外字段关联...,反向找 字段related_name 3)db_constraint断开表关联,on_delete不存在(不设置,本质第三张表中设置,且一定是级联)

3K20

Django中基表的创建、字段属性简介、脏数据概念、子序列化

当然如果不指定也没关系,Django会自动默认的按照一定规则生成数据模型对应的数据库表名。关于Django Meta的详细讲解可以参考该博客。...如两张表建立了一对一字段,A表,那么先往B表写数据就更合理。...更合理) """ Django orm中外字段属性详解 在建表之前我们对外字段属性进行了解: 1)related_name在外中设置反向查询的字段名:正向找字段名,反向找related_name...2)on_delete在外建中必须设置,表示级联关系,Django1.x下系统默认提供(值为models.CASCADE),Django2.x下必须手动明确: CASCADE:默认值,级联 例子:作者被删...SET_DEFAULT:假设A表依赖B表,B记录删除,A表的字段重置为default属性设置的值,所以必须配合default属性使用。

4.3K30

【Python全栈100天学习笔记】Day41 Django深入理解框架

OK 执行完数据模型迁移操作之后,可以通过图形化的MySQL客户端工具查看到E-R图(实体关系图)。 利用Django后台管理模型 Django框架有自带的后台管理系统来实现对模型的管理。...使用ORM完成模型的CRUD操作 了解了Django提供的模型管理平台之后,我们来看看如何从代码层面完成对模型的CRUD(Create / Read / Update / Delete)操作。...db_constraint:是否为创建约束,默认值为True。...on_delete关联的对象被删除时对应的动作,可取的值包括django.db.models中定义的: CASCADE:级联删除。...SET_NULL:把设置为null,当null属性被设置为True时才能这么做。 SET_DEFAULT:把设置为默认值,提供了默认值才能这么做。

2.2K30

Django项目知识点(三)

表示随机 ordering=['-pub_date','author'] # 以pub_date为降序,以author升序排列 permissions permissions主要是为了Django...注意:Django一个模型中只允许有一个自增字段,并且该字段必须为主键!...,也可另立主键并将“一”和“多”两表的主键作为关联表的; 多对多的表,则必须设中间关联表,关联表设独立主键,并引入两个“多”头的表的主键作为关联表的。...SET_NULL:此值设置,会把设置为null,前提是允许为null。 SET_DEFAULT:此值设置,会把设置为的默认值。 SET():此值设置,会调用外面的值,可以是一个函数。...在这里插入图片描述 如果没有学生,没有课程来报名上学干嘛,所以是多对一,多个学生合成一张报名表 注意:和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错

1.8K30

Django ForeignKey与数据库的FOREIGN KEY约束详解

数据库高并发的场景下使用约束会有锁问题并且使用会增加运维成本,所以很多公司都规定生产环境的数据库禁止使用。...那么不使用约束的情况下使用 Django ORM 如何实现关联查询两个表呢?这曾是困扰我很久的一个问题,今天终于找到了答案,写出来分享一下。...开头提到的场景下,我们可以这样创建两个表对应的 Model,以省和市的关联举例: # demo/models.py from django.db import models class Province...`name` = xxx; 补充知识:关于Django模型中中定义auto_now=True 数据库中的时间并没有自动更新 django的orm关于更新数据库的方法有update和save两种方法...前提在模型中设置了auto_now=True时间戳属性,为了方便数据库自动更新时间,而 使用update更新的记录,数据库中并没有自动更新,达到我的需求。

2.5K10

【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解

文章目录 一、模型类定义 二、模型类迁移 总结 ---- 一、模型类定义 models.py 文件中定义模型类,示例如下: from django.db import models # Create...=models.CASCADE, verbose_name='图书') # is_delete = models.BooleanField(default=False, verbose_name...2) 关于主键 django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...AutoField的选项使用 unique 如果为True, 这个字段表中必须有唯一值,默认值是False null是数据库范畴的概念,blank是表单验证范畴的 6) 设置时,需要通过...on_delete选项指明主表删除数据时,对于引用表数据如何处理,django.db.models中包含了可选常量: CASCADE级联,删除主表数据时连通一起删除外表中数据 PROTECT保护

1.4K20

django_mysql_配置

自己数据中创建一个djangi_demo create database django_demo default charset=utf8; ---- 定义模型类 1....=models.CASCADE, verbose_name='图书') # is_delete = models.BooleanField(default=False, verbose_name...2) django会为表创建自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...null是数据库范畴的概念,blank是表单验证范畴的 5) 一般我用CASCADE 设置时,需要通过on_delete选项指明主表删除数据时,对于引用表数据如何处理,django.db.models...中包含了可选常量: CASCADE 级联,删除主表数据时连通一起删除外表中数据 PROTECT 保护,通过抛出ProtectedError异常,来阻止删除主表中被应用的数据 SET_NULL

1.6K10

Django框架学习(三)

Django中: 1、设置模板目录 工程中创建模板目录templates。...AutoField的选项使用 unique 如果为True, 这个字段表中必须有唯一值,默认值是False 设置时,需要通过on_delete选项指明主表删除数据时,对于引用表数据如何处理...,django.db.models中包含了可选常量: CASCADE 级联,删除主表数据时连通一起删除外表中数据 PROTECT 保护,通过抛出ProtectedError异常,来阻止删除主表中被应用的数据...删除 1、查询对象->对象.delete() 模型类对象delete hero = HeroInfo.objects.get(id=13) hero.delete() 2、模型类.objects.filter...(...).delete() 模型类.objects.filter().delete() HeroInfo.objects.filter(id=14).delete() ?

1.8K40

Django ORM 多表操作

目录 Django ORM 多表操作 表模型 表关系 创建模型 逆向到表模型 插入数据 ORM 添加数据(添加) 一对多( ForeignKey) 一对一 (OneToOneFeild) 多对多...ORM 多表操作 表模型 图书表 出版社表 作者表 作者详情表 表关系 一对一:一对一推荐建在查询频率高的一方 一对多:字段建在多的一方 多对多:字段建在查询频率多的一方,Django第三张表不需要创建...,自动创建 ps:字段不需要写表名_id后面的_id,ORM创建的时候自动添加了_id,以及以虚拟字段的形式存在 创建模型 '''models.py''' from django.db import...3、一般不需要设置联级更新. 4、一对多的多中设置:models.ForeignKey("关联类名", on_delete=models.CASCADE)。...6、若有模型类存在外,创建数据时,要先创建关联的模型类的数据,不然创建包含模型类的数据时,的关联模型类的数据会找不到 逆向到表模型 插入数据 ps:插入几条数据方便操作 ORM

1.7K20

Django中的关系映射

=models.CASCADE) # 一对一即users_id 对应 id 一对一映射(创建数据) ---- 无约束的模型类UserMit # 进入Django Shell操作 create1 =...UserMit.objects.create(name="henan) 有约束的模型类UserId create2 = UserId.objects.create(name="henan",users...-b493503d6433') 反向查询 没有属性的一方,可以调用反向属性查询到关联的另一方 反向关联的属性为实例对象.引用类名(小写) 当反向引用不存在的时候,则会触发异常 当...一对多需要明确出具体角色,多表上设置 语法:当一个A类对象可以关联多个B类对象 class ClassRoom(models.Model): # 班级唯一 name = models.CharField...,如:每个人都有不同的学校,每个学校都有不同的学生 MySQL中创建多对多需要以来第三张表来完成 Django中无需手动创建,Django自动完成 语法:关联的两个类中的任意一个类中models.ManyToManyField

1.7K20

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

2.1 ForeignKey 1) on_delete Django 2.0 中,设置时需要添加一个 on_delete选项。本身涉及到两个表的数据,况且在数据库中是有约束行为。...SET_DEFAULT: 置默认值,删除的时候,字段设置为默认值,所以定义的时候注意加上一个默认值。 SET(): 自定义对应的实体的值。...2)limit_choices_to 该参数用于限制所能关联的对象,只能用于 Django 的 ModelForm(Django的表单模块)和 admin 后台,对其它场合无限制功能。...4) related_name 用于关联对象反向引用模型的名称。主要用于反向查询,即模型实例通过管理器返回第一个模型的所有实例。...如果用户没有定义该选项, Django会自动将自动创建,内容是该字段属性名中的下划线转换为空格的结果。

2K30

使用Django实现把两个模型类的数据聚合在一起

Django中想要把模型类聚合得到想要的数据可以用F对象。 比如有模型类A和B,A和B之间有关联在一起,A是子表,B是父表(反过来没试过。。...models.Model): # 写一个方法,定义管理页面上能够显示的字段字段 # grade为Students模型检表,level为Grades模型检表,那么为Level模型的字段...添加的是'模型类字段' # 如果是需要遵循这样的语法:本表字段__(双下划线)检表字段或检表的字段__最终表要显示的字段。...为子表(有所在的表) class ScoreInline(admin.TabularInline): # Score 必须是models.py中的模型名称,大小写必须要匹配.这个模型为子表,以便可以被父表编辑...inlines = [ScoreInline, ] 做完之后,效果如下: ? 以上这篇使用Django实现把两个模型类的数据聚合在一起就是小编分享给大家的全部内容了,希望能给大家一个参考。

1.4K20
领券