Django数据模型on_delete属性值

  1. CASCADE
    • 级联删除。当关联对象被删除时,当前对象也会被删除。
    • 这是Django的默认行为(在需要显式声明on_delete之前的版本中)。
  2. PROTECT
    • 保护模式。当尝试删除关联对象时,如果当前对象存在外键引用,则抛出 ProtectedError 异常,阻止删除。
    • 这有助于防止意外删除有依赖关系的对象。
  3. SET_NULL
    • 设置为空。当关联对象被删除时,将当前对象的外键字段设置为 None(即空值)。
    • 要求外键字段允许为空(即 null=True)。
  4. SET_DEFAULT
    • 设置为默认值。当关联对象被删除时,将当前对象的外键字段设置为一个默认值。
    • 要求外键字段有默认值设置(即 default=...)。
  5. SET(...)
    • 自定义设置。允许指定一个值或可调用对象,当关联对象被删除时,将当前对象的外键字段设置为该值或可调用对象的返回值。
    • 如果指定的是可调用对象,它应该在删除发生时被调用,并返回一个适当的值。
  6. DO_NOTHING
    • 不采取任何操作。当关联对象被删除时,Django不会对当前对象的外键字段进行任何操作。
    • 这可能导致数据库完整性错误,如果数据库层面没有相应的外键约束来防止孤立记录的话。
相关推荐
jiayou647 小时前
KingbaseES 表级与列级加密完全指南
数据库·后端
GBASE1 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
xiezhr2 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
吃糖的小孩2 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
笃行3503 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3503 天前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行3503 天前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
SelectDB4 天前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶4 天前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构