91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django2.0關聯表中必填on_delete參數的含義是什么

發布時間:2021-09-09 09:25:09 來源:億速云 閱讀:253 作者:小新 欄目:開發技術

這篇文章主要介紹django2.0關聯表中必填on_delete參數的含義是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一對多(ForeignKey)

class ForeignKey(ForeignObject):
  def __init__(self, to, on_delete, related_name=None, related_query_name=None,
         limit_choices_to=None, parent_link=False, to_field=None,
         db_constraint=True, **kwargs):
    super().__init__(to, on_delete, from_fields=['self'], to_fields=[to_field], **kwargs)

一對一(OneToOneField)

class OneToOneField(ForeignKey):
  def __init__(self, to, on_delete, to_field=None, **kwargs):
    kwargs['unique'] = True
    super().__init__(to, on_delete, to_field=to_field, **kwargs)

從上面外鍵(ForeignKey)和一對一(OneToOneField)的參數中可以看出,都有on_delete參數,而 django 升級到2.0之后,表與表之間關聯的時候,必須要寫on_delete參數,否則會報異常:

TypeError: __init__() missing 1 required positional argument: 'on_delete'

因此,整理一下on_delete參數的各個值的含義:

on_delete=None,        # 刪除關聯表中的數據時,當前表與其關聯的field的行為
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(可執行對象)

多對多(ManyToManyField)

class ManyToManyField(RelatedField):
  def __init__(self, to, related_name=None, related_query_name=None,
         limit_choices_to=None, symmetrical=None, through=None,
         through_fields=None, db_constraint=True, db_table=None,
         swappable=True, **kwargs):
    super().__init__(**kwargs)

因為多對多(ManyToManyField)沒有 on_delete 參數,所以略過不提.

以上是“django2.0關聯表中必填on_delete參數的含義是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双鸭山市| 邵东县| 利辛县| 桓台县| 信宜市| 樟树市| 鄂伦春自治旗| 榆树市| 镇原县| 沁阳市| 彰武县| 墨脱县| 兴国县| 清远市| 张掖市| 敖汉旗| 闽侯县| 蚌埠市| 北宁市| 桦甸市| 图木舒克市| 漳州市| 翼城县| 东辽县| 靖远县| 时尚| 尼玛县| 延川县| 名山县| 新安县| 五河县| 宽甸| 昌宁县| 江川县| 东安县| 曲沃县| 泸州市| 杭锦后旗| 青川县| 隆化县| 秭归县|