为了账号安全,请及时绑定邮箱和手机立即绑定

Django Model 外键中的on_delete 参数用法

标签:
Python Django

场景

我们用Django的Model时,有时候需要关联外键。关联外键时,参数:on_delete的几个配置选项到底是干嘛的呢,你知道吗?

参数介绍

  • 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约束。

欢迎查看我的这个系列的其他文章:

还有更多内容,请查看Bigyoung小站。

本文首发于BigYoung小站

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消