zoukankan      html  css  js  c++  java
  • 【Django 2.2文档系列】Model 外键中的on_delete参数用法

    场景

    我们用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小站

  • 相关阅读:
    搞一个先试试
    java map排序
    文件上传
    文件下载
    Filter过滤器
    java编写一个简单的验证码
    centos7安装mysql
    linux安装jdk,tomcat服务器
    DBUtil工具类
    mysql
  • 原文地址:https://www.cnblogs.com/bigyoung/p/12797505.html
Copyright © 2011-2022 走看看