CASCADE:- 级联删除。当关联对象被删除时,当前对象也会被删除。
- 这是Django的默认行为(在需要显式声明
on_delete之前的版本中)。
PROTECT:- 保护模式。当尝试删除关联对象时,如果当前对象存在外键引用,则抛出
ProtectedError异常,阻止删除。 - 这有助于防止意外删除有依赖关系的对象。
- 保护模式。当尝试删除关联对象时,如果当前对象存在外键引用,则抛出
SET_NULL:- 设置为空。当关联对象被删除时,将当前对象的外键字段设置为
None(即空值)。 - 要求外键字段允许为空(即
null=True)。
- 设置为空。当关联对象被删除时,将当前对象的外键字段设置为
SET_DEFAULT:- 设置为默认值。当关联对象被删除时,将当前对象的外键字段设置为一个默认值。
- 要求外键字段有默认值设置(即
default=...)。
SET(...):- 自定义设置。允许指定一个值或可调用对象,当关联对象被删除时,将当前对象的外键字段设置为该值或可调用对象的返回值。
- 如果指定的是可调用对象,它应该在删除发生时被调用,并返回一个适当的值。
DO_NOTHING:- 不采取任何操作。当关联对象被删除时,Django不会对当前对象的外键字段进行任何操作。
- 这可能导致数据库完整性错误,如果数据库层面没有相应的外键约束来防止孤立记录的话。
Django数据模型on_delete属性值
啧不应该啊2024-11-05 0:36
相关推荐
@Mike@6 小时前
02-数据库学习笔记(SQL引擎)笃行3508 小时前
国产化落地避坑 · 干货向|Oracle 迁金仓 KES,我把外连接消除排在隐性陷阱第一位老纪的技术唠嗑局8 小时前
花一年时间整理出的:AI 数据库混合搜索入门实践川石课堂软件测试9 小时前
安全测试|常见SQL注入攻击方式、实例及预防笃行3509 小时前
国产化落地避坑 · 干货向|迁移后那条「测试能过、一上生产就查空」的 SQL,多半栽在 WHERE 函数顺序上蓝田~9 小时前
MySQL慢查询怎么优化?B+Tree索引原理+MVCC读不阻塞写+EXPLAIN执行计划,从5秒到0.05秒sunxunyong10 小时前
doris用户资源组配置Cloud云卷云舒10 小时前
云卷云舒:HaishanDB的AI原生能力主要应用场景时间的拾荒人10 小时前
MySQL 视图详解qq_3660862211 小时前
sql 查询中关于 null 值判断的问题