不少小伙伴在做migration的时候发现,现在on_delete以及不再支持默认,必须要显式申明。
on_delete有以下选项:
-
CASCADE:联级删除
on_delete=models.CASCADE -
PROTECT:不可删除,抛出ProtectedError错误
on_delete=models.PROTECT -
SET_NULL:外键会被设为NULL,前提是字段允许null和blank
on_delete=models.SET_NULL -
SET_DEFAULT:外键被设为默认字段,前提是该字段有默认值
on_delete=models.SET_DEFAULT -
SET():自定义一个值或返回值的方法

Django ORM现在要求明确设置on_delete选项,以处理关联模型删除时的行为。这包括CASCADE(级联删除)、PROTECT(保护,防止删除并抛出错误)、SET_NULL(设置为NULL,字段需允许为空)、SET_DEFAULT(设置为默认值,字段需有默认值)以及SET(自定义删除后的值)。
最低0.47元/天 解锁文章
807

被折叠的 条评论
为什么被折叠?



