on_delete=models.SET_NULL,# 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理) # models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值') on_delete=models.SET_DEFAULT,# 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)...
models.SET_NULL删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空) models.SET_DEFAULT删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值) models.SET 删除关联数据, a. 与之关联的值设置为指定值,设置:models.SET(值) b. 与之关联的值设置为可执行对象的返回值,设置:models.SET...
on_delete = models.PROTECT:保护模式,如采用这个方法,在删除关联数据时会抛出ProtectError错误 on_delete = models.SET_DEFAULT:设置默认值,删除子表字段时,外键字段设置为默认值,所以定义外键的时候注意加上一个默认值。 on_delete = models.SET(值):删除关联数据时,自定义一个值,该值只能是对应指定的实体 三...
通过在ParentEntity的child属性上使用@JoinColumn注解,设置nullable属性为true,并且设置onDelete属性为ReferentialAction.SET_NULL,即可将操作"on delete set null"设置为外键。 这样,在删除ParentEntity的记录时,如果存在关联的ChildEntity记录,将会将外键字段child_id设置为null。 推荐的腾讯云相关产品:腾讯云...
models.SET()将SET()设置的值作为外键的值 ,如果传递了callable,则调用它的结果。 DO_NOTHING不采取行动。如果后端数据库有强制关联操作,这是容易报错:IntegrityError,除非你在数据库中手动添加了SQL的ON DELETE约束。 欢迎查看我的这个系列的其他文章:
Django数据模型中关于on_delete的使用 1、常见的使用方式(设置为null) 2、关于别的属性的介绍 CASCADE:这就是默认的选项,级联删除,你无需显性指定它。 PROTECT: 保护模式,如果采用该选项,删除的时候,会抛出ProtectedError错误。 SET_NULL: 置空模式,删除的时候,外键字段被设置为空,前提就是blank=True, null=True...
django数据模型中关于on_delete的使用 关于on_delete的总结 1、常见的使用方式(设置为null) class BookModel(models.Model): """ 书籍表 """ book_name = models.CharField(max_length=100, verbose_name='书名') # 表示外键关联到作者表,当作者表删除了该条数据,图书表中不删除,仅仅是把外键置空...
级联删除不会调用model级行为,但是会为所有已删除对象发送pre_delete和 post_delete信号,有用Django的信号机制的场景,要考虑这个级联删除带来影响。 models.PROTECT 防止删除引用的对象。与上个恰恰相反,是防止关联数据被删除。 models.SET_NULL 设置关联的外键内容为null。只有设置了null=True时可用。当数据被删除时...
在 Django 模型中,on_delete 参数是一个至关重要的设置,它定义了当一个对象被删除时,与其相关联的引用对象应如何响应。on_delete 参数提供了七种不同的行为选择:CASCADE、PROTECT、RESTRICT、SET_NULL、SET_DEFAULT、SET() 和 DO_NOTHING。CASCADE 行为使得当主对象被删除时,所有依赖于它的从对象...
author = models.ForeignKey(AuthModel, null=True, blank=True, on_delete=models.SET_NULL) price = models.FloatField(verbose_name='价格') create_time = models.DateTimeField(auto_now_add=True, verbose_name='添加时间') 2、关于别的属性的介绍 ...