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不会对当前对象的外键字段进行任何操作。
    • 这可能导致数据库完整性错误,如果数据库层面没有相应的外键约束来防止孤立记录的话。
相关推荐
老胖闲聊1 分钟前
Python Django完整教程与代码示例
数据库·python·django
noravinsc5 分钟前
django paramiko 跳转登录
后端·python·django
践行见远7 分钟前
django之请求处理过程分析
数据库·django·sqlite
声声codeGrandMaster7 分钟前
Django之表格上传
后端·python·django
行星00822 分钟前
Postgresql常用函数操作
数据库·postgresql
程序员葵安41 分钟前
【Java Web】9.Maven高级
java·数据库·后端·maven
海棠一号1 小时前
Android Settings 数据库生成、监听与默认值配置
android·数据库
新时代苦力工1 小时前
MVCC机制:Undo Log版本链与ReadView机制
数据库·mysql
GUIQU.2 小时前
【Oracle】存储过程
数据库·oracle
爱可生开源社区2 小时前
SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!
数据库·postgresql·oracle