Django model on_delete参数

在django的2.0 版本发现model外键强制要示写on_delete参数,如果没写就会报错,而这在之前的版本则是默认on_delete = models.CASCADE,即级联删除,删除关联数据,与之关联的外键数据也会删除,下面整理下on_delete的几种参数

on_delete=models.CASCADE,     # 删除关联数据,与之关联也删除

on_delete=models.DO_NOTHING,  # 删除关联数据,什么也不做

on_delete=models.PROTECT,     # 删除关联数据,引发错误ProtectedError

# models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)
on_delete=models.SET_NULL,    # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)

# models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')
on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)

on_delete=models.SET,         # 删除关联数据,
#a. 与之关联的值设置为指定值,设置:models.SET(值)
#b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)

 

上一篇:Linux Nginx 配置

下一篇:Django 中的F类