欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對django2.0 關(guān)聯(lián)表的必填on_delete參數(shù)的含義解析

 更新時(shí)間:2019年08月09日 09:23:55   作者:buxianghejiu  
今天小編就為大家分享一篇對django2.0 關(guān)聯(lián)表的必填on_delete參數(shù)的含義解析,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

一對多(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)的參數(shù)中可以看出,都有on_delete參數(shù),而 django 升級到2.0之后,表與表之間關(guān)聯(lián)的時(shí)候,必須要寫on_delete參數(shù),否則會(huì)報(bào)異常:

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

因此,整理一下on_delete參數(shù)的各個(gè)值的含義:

on_delete=None,        # 刪除關(guān)聯(lián)表中的數(shù)據(jù)時(shí),當(dāng)前表與其關(guān)聯(lián)的field的行為
on_delete=models.CASCADE,   # 刪除關(guān)聯(lián)數(shù)據(jù),與之關(guān)聯(lián)也刪除
on_delete=models.DO_NOTHING, # 刪除關(guān)聯(lián)數(shù)據(jù),什么也不做
on_delete=models.PROTECT,   # 刪除關(guān)聯(lián)數(shù)據(jù),引發(fā)錯(cuò)誤ProtectedError
# models.ForeignKey('關(guān)聯(lián)表', on_delete=models.SET_NULL, blank=True, null=True)
on_delete=models.SET_NULL,  # 刪除關(guān)聯(lián)數(shù)據(jù),與之關(guān)聯(lián)的值設(shè)置為null(前提FK字段需要設(shè)置為可空,一對一同理)
# models.ForeignKey('關(guān)聯(lián)表', on_delete=models.SET_DEFAULT, default='默認(rèn)值')
on_delete=models.SET_DEFAULT, # 刪除關(guān)聯(lián)數(shù)據(jù),與之關(guān)聯(lián)的值設(shè)置為默認(rèn)值(前提FK字段需要設(shè)置默認(rèn)值,一對一同理)
on_delete=models.SET,     # 刪除關(guān)聯(lián)數(shù)據(jù),
 a. 與之關(guān)聯(lián)的值設(shè)置為指定值,設(shè)置:models.SET(值)
 b. 與之關(guān)聯(lián)的值設(shè)置為可執(zhí)行對象的返回值,設(shè)置:models.SET(可執(zhí)行對象)

多對多(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)

因?yàn)槎鄬Χ?ManyToManyField)沒有 on_delete 參數(shù),所以略過不提.

以上這篇對django2.0 關(guān)聯(lián)表的必填on_delete參數(shù)的含義解析就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python 帶時(shí)區(qū)的日期格式化操作

    python 帶時(shí)區(qū)的日期格式化操作

    這篇文章主要介紹了python 帶時(shí)區(qū)的日期格式化操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Django項(xiàng)目搭建之實(shí)現(xiàn)簡單的API訪問

    Django項(xiàng)目搭建之實(shí)現(xiàn)簡單的API訪問

    這篇文章主要給大家介紹了關(guān)于Django項(xiàng)目搭建之實(shí)現(xiàn)簡單的API訪問的相關(guān)資料,文中通過圖文以及示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-02-02
  • np.random.seed() 的使用詳解

    np.random.seed() 的使用詳解

    這篇文章主要介紹了np.random.seed() 的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Flask??response?對象詳情

    Flask??response?對象詳情

    在?Flask?中,響應(yīng)使用?Response?對象表示,響應(yīng)報(bào)文中的大部分內(nèi)容由服務(wù)器處理,一般情況下,我們只負(fù)責(zé)返回主體內(nèi)容即可。在之前的文章中,我們了解到?Flask?會(huì)先匹配請求?url?的路由,調(diào)用對應(yīng)的視圖函數(shù),視圖函數(shù)的返回值構(gòu)成了響應(yīng)報(bào)文的主體內(nèi)容。
    2021-11-11
  • Python浮點(diǎn)型(float)運(yùn)算結(jié)果不正確的解決方案

    Python浮點(diǎn)型(float)運(yùn)算結(jié)果不正確的解決方案

    這篇文章主要介紹了Python浮點(diǎn)型(float)運(yùn)算結(jié)果不正確的解決方案,幫助大家更好的利用python進(jìn)行運(yùn)算處理,感興趣的朋友可以了解下
    2020-09-09
  • python訪問抓取網(wǎng)頁常用命令總結(jié)

    python訪問抓取網(wǎng)頁常用命令總結(jié)

    這篇文章主要介紹了python訪問抓取網(wǎng)頁常用命令的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • ubuntu 安裝pyqt5和卸載pyQt5的方法

    ubuntu 安裝pyqt5和卸載pyQt5的方法

    這篇文章主要介紹了ubuntu 安裝pyqt5和卸載pyQt5的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python 迭代器工具包【推薦】

    Python 迭代器工具包【推薦】

    迭代器工具在產(chǎn)生數(shù)據(jù)的時(shí)候?qū)?huì)顯得非常便捷、高效,掌握了這些基本的方法之后,通過簡單的組合就可以獲得更多迭代器工具。
    2016-05-05
  • 用python3 返回鼠標(biāo)位置的實(shí)現(xiàn)方法(帶界面)

    用python3 返回鼠標(biāo)位置的實(shí)現(xiàn)方法(帶界面)

    今天小編就為大家分享一篇用python3 返回鼠標(biāo)位置的實(shí)現(xiàn)方法(帶界面),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python queue模塊攻略全解

    Python queue模塊攻略全解

    這篇文章主要為大家介紹了Python queue模塊攻略全解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評論