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
相关推荐
胖头鱼的鱼缸(尹海文)23 分钟前
数据库管理-第376期 Oracle AI DB 23.26新特性一览(20251016)麦聪聊数据24 分钟前
浅谈SQL审核(一):SQL审核实现方式与常见工具的选择ajassi200031 分钟前
开源 Linux 服务器与中间件(七)数据库--MySQL韩立学长1 小时前
【开题答辩实录分享】以《自然灾害隐患点管理信息系统》为例进行答辩实录分享迎風吹頭髮1 小时前
Linux服务器编程实践58-getnameinfo函数:通过socket地址获取主机名与服务名christine-rr1 小时前
linux常用命令——其他一只专注api接口开发的技术猿1 小时前
容器化与调度:使用 Docker 与 K8s 管理分布式淘宝商品数据采集任务tryxr1 小时前
MySQL 之索引为什么选择B+树曦樂~2 小时前
【Qt】信号与槽(Signal and Slot)- 简易计算器Q_Q19632884752 小时前
python+uniapp基于微信小程序的助眠小程序