zoukankan      html  css  js  c++  java
  • django2.X 模型类兼容 外键关联on_delete


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

    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: 啥也不干

  • 相关阅读:
    [hdu4631 Sad Love Story]最近点对,枚举
    [hdu4629 Burning]三角形面积并,扫描线
    [hdu4628 Pieces]二进制子状态,DP
    [hdu4627 The Unsolvable Problem]数论
    [hdu4622 Reincarnation]后缀数组
    [hdu5379 Mahjong tree]dfs计数
    [hdu5375 Gray code]DP
    决策树
    算法题解之位运算
    算法题解之滑动窗口
  • 原文地址:https://www.cnblogs.com/jrri/p/11605015.html
Copyright © 2011-2022 走看看