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

  • 作者:牛肉盖饭
  • 分类: Django
  • 发表日期:2022-02-22 10:06:56
  • 阅读(1031)
  • 评论数(0)

参数介绍

------------------------------------------------------------------------------------------------------------------------------------------
models.CASCADE
级联删除。Django会模拟SQL约束的行为,在删除此条数据时,同事删除外键关联的对象。 比如:用户的有一个外键关联的是用户的健康记录表,当用户删除时,配置了这个参数的健康记录表中跟这个用户有关的数据也会被删除。

提醒: 级联删除不会调用model级行为,但是会为所有已删除对象发送pre_delete和 post_delete信号,有用Django的信号机制的场景,要考虑这个级联删除带来影响。

------------------------------------------------------------------------------------------------------------------------------------------

models.PROTECT
防止删除引用的对象。与上个恰恰相反,是防止关联数据被删除。

------------------------------------------------------------------------------------------------------------------------------------------

models.SET_NULL
设置关联的外键内容为null。只有设置了null=True时可用。当数据被删除时,被关联的外键内容被设置为null。

------------------------------------------------------------------------------------------------------------------------------------------

models.SET_DEFAULT
将外键的值设置为默认值。外键必须设置有默认值 。

------------------------------------------------------------------------------------------------------------------------------------------

models.SET() 将SET()设置的值作为外键的值 ,如果传递了callable,则调用它的结果。

------------------------------------------------------------------------------------------------------------------------------------------

DO_NOTHING 不采取行动。如果后端数据库有强制关联操作,这是容易报错:IntegrityError,除非你在数据库中手动添加了SQL的ON DELETE约束。

提交评论

您尚未登录,登陆之后方可评论 登录 or 注册

评论列表

暂无评论