Django ORM模型类处理外键 on_delete 方式

16,729 阅读1分钟

MedusaSorcerer的博客


知识点记要

创建 Django ORM 模型的时候, 总会需要用到外键映射
这时候当我们需要处理删除外键对象的时候的处理方式, Django 有以下方式:

from django.db import models
处理指定方式处理方式描述
on_delete=None删除关联表中的数据时
当前表与其关联的Field的行为
on_delete=models.CASCADE删除关联数据, 与之关联也删除
on_delete=models.DO_NOTHING删除关联数据, 什么也不做
on_delete=models.PROTECT删除关联数据, 引发错误ProtectedError
on_delete=models.SET_NULL删除关联数据, 与之关联的值设置为null
前提是该字段可设置为空)
on_delete=models.SET_DEFAULT删除关联数据, 与之关联的值设置为默认值
前提该字段需要拥有默认值
on_delete=models.SET删除关联数据:
a. 设置为指定值:models.SET(值)
b. 设置为可执行对象的返回值:models.SET(对象)




生命太短暂,不要去做一些根本没有人想要的东西。——Ash Maurya