首页 > 其他 > 详细

django2.2模型类兼容

时间:2019-09-28 21:53:54      阅读:103      评论:0      收藏:0      [点我收藏+]


模型类引入外键的时候需要添加

on_delete=models.CASCADE

例:
以往版本:

name = models.ForeignKey(Name)
type = models.ForeignKey(Type,verbose_name=类别)

需改为:

name = models.ForeignKey(Name,on_delete=models.CASCADE)
type = models.ForeignKey(Type,on_delete=models.CASCADE,verbose_name=类别)

 

不然报错:
TypeError: __init__() missing 1 required positional argument: ‘on_delete‘

 


on_delete作用:  如果外键所关联的对应数据表被删除的话, 此模型类数据的应对方式.

在django2.X之前版本, on_delete(default=‘CASCADE‘), CASCADE是缺省值, 更新之后需要进行手动设置.




一般依然选CASCADE.

on_delete有六种选项, 除了CASCADE外, 还有PROTECT、SET()、SET_NULL、SET_DEFAULT、DO_NOTHING


on_delete属性详解:

CASCADE(级联删除):当关联表中的数据删除时,该外键字段也随之删除

PROTECT(保护模式): 如果采用该选项,删除的时候,会抛出ProtectedError错误

SET(): 自定义一个值,对应实体

SET_NULL(置空):当关联表中的数据删除时,该外键置空,当然,此外键字段得允许为空,null=True

SET_DEFAULT(设置默认值):删除的时候,外键字段设置为默认值,所以定义外键的时候注意加上一个默认值

DO_NOTHING: 啥也不干

django2.2模型类兼容

原文:https://www.cnblogs.com/jrri/p/11605015.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!