我们用Django的Model时,有时候需要关联外键。关联外键时,参数:on_delete的几个配置选项到底是干嘛的呢,你知道吗? 参数介绍 models.CASCADE 级联删除。Django会模拟SQL约束的行为,在删除此条数据时,同事删除外键关联的对象。比如:用户的有一个外键关联的是用户的健康记录表,当用户删除时,配置了这个参数的健康记录表中...
on_delete 参数用于配置删除引用对象时应采用的行为。它基本上用于定义如何处理删除引用对象的影响。
因此,整理一下on_delete参数的各个值的含义: on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为 on_delete=models.CASCADE, # 删除关联数据,与之关联也删除 on_delete=models.DO_NOTHING, # 删除关联数据,什么也不做 on_delete=models.PROTECT, # 删除关联数据,引发错误ProtectedError # mod...
一、外键、OneToOne字段等on_delete为必须参数 - 如下ForeignKey字段源码,to、on_delete为必须参数 to:关联的表 on_delete:当该表中的某条数据删除后,关联外键的操作 related_name:反查参数,设置后可以在被关联表中通过该字段反查外键所在表,默认:set_表名 to_field:默认主键,因为mysql只支持主键作为外键,就算...
Django模型简化了数据库和表的创建、向表中添加新数据或元组、删除、检索和修改。使用Django模型,我们可以借助外键轻松建立表之间的关系。在设置关系时,我们必须为一些参数设置值。一个这样的参数是on_delete。on_delete参数用于配置删除引用对象时应采用的行为。它基本上用于定义如何处理删除引用对象的影响...
on_delete参数如下: CASCADE:级联操作。如果外键对应的那条数据被删除了,那么这条数据也会被删除。 PROTECT:受保护。即只要这条数据引用了外键的那条数据,那么就不能删除外键的那条数据。如果我们强行删除,Django就会报错。 SET_NULL:设置为空。如果外键的那条数据被删除了,那么在本条数据上就将这个字段设置为空。
在Django的ORM(对象关系映射)中,ForeignKey字段用于表示一个对象与另一个对象之间的关联关系,通常对应于数据库中的外键。on_delete参数是一个非常重要的参数,它指定了当关联的对象(即外键指向的对象)被删除时,Django应该如何处理这个外键。 on_delete参数可以接受以下几种值: ...
从上面外键(ForeignKey)和一对一(OneToOneField)的参数中可以看出,都有on_delete参数,而 django 升级到2.0之后,表与表之间关联时,必须要写on_delete参数,否则会报异常: TypeError:__init__()missing1requiredpositionalargument:'on_delete' 因此,整理一下on_delete参数的各个值的含义: ...
在 Django 模型中,on_delete 参数是一个至关重要的设置,它定义了当一个对象被删除时,与其相关联的引用对象应如何响应。on_delete 参数提供了七种不同的行为选择:CASCADE、PROTECT、RESTRICT、SET_NULL、SET_DEFAULT、SET() 和 DO_NOTHING。CASCADE 行为使得当主对象被删除时,所有依赖于它的从对象...
在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致...