场景

我们用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约束。

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

  1. django-admin和manage.py的用法
  2. 编写自定义manage.py 命令
  3. Django组件——forms组件

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

本文首发于BigYoung小站

最新文章

  1. google-analytics的使用: 解析页面引入代码
  2. IIS7 php wordpress 中文url 标签tag中文URL404解决方法
  3. iOS-代理反向传值<转>
  4. 《Apache数据传输加密、证书的制作》——涉及HTTPS协议
  5. 【转】bt协议的详细分析
  6. Kettle之数据抽取、转换、装载
  7. [LeetCode328]Odd Even Linked List
  8. 对xlslib库与libxls库的简易封装
  9. Mac OS中使用VScode配置C语言开发环境
  10. 反向代理和HTTP重定向
  11. (国内)完美下载Android源码Ubuntu版
  12. spring data redis 理解
  13. macos 命令行安装 ipa
  14. maya2017卸载/安装失败/如何彻底卸载清除干净maya2017注册表和文件的方法
  15. ASP.NET MVC4分页Site.CSS
  16. SQLyog中创建数据表及相关查询方法
  17. HDU2255(KB10-K 二分图最大权匹配)
  18. WannaflyCamp 平衡二叉树(DP)题解
  19. 如何优化myeclipse.
  20. 精《Linux内核精髓:精通Linux内核必会的75个绝技》一HACK #7 Cgroup、Namespace、Linux容器

热门文章

  1. [noip模拟]散步<dp>
  2. java如何自定义一个线程池
  3. 1.Metasploit介绍与基本命令
  4. O - Layout(差分约束 + spfa)
  5. C++STL(一)——string类
  6. Python魔法缓存,以数字开始
  7. 标准与扩展ACL
  8. Git-flow 使用笔记
  9. Linux bash篇,基本信息和变量
  10. 详解java访问修饰符