最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django model反向關(guān)聯(lián)名稱的方法

 更新時間:2018年12月15日 15:40:11   作者:GrandG7  
今天小編就為大家分享一篇Django model反向關(guān)聯(lián)名稱的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

如果你在 ForeignKey或 ManyToManyField字段上使用 related_name屬性,你必須總是為該字段指定一個唯一的反向名稱。但在抽象基類上這樣做就會引發(fā)一個很嚴(yán)重的問題。因為 Django 會將基類字段添加到每個子類當(dāng)中,而每個子類的字段屬性值都完全相同 (這里面就包括related_name)。

當(dāng)你在(且僅在)抽象基類中使用 related_name 時,如果想繞過這個問題,名稱中就要包含'%(app_label)s'和 ‘%(class)s'。

‘%(class)s'會替換為子類的小寫加下劃線格式的名稱,字段在子類中使用。

‘%(app_label)s'會替換為應(yīng)用的小寫加下劃線格式的名稱,應(yīng)用包含子類。每個安裝的應(yīng)用名稱都應(yīng)該是唯一的,而且應(yīng)用里每個模型類的名稱也應(yīng)該是唯一的,所以產(chǎn)生的名稱應(yīng)該彼此不同。

from django.db import models

class Base(models.Model):
 m2m = models.ManyToManyField(OtherModel, related_name="%(app_label)s_%(class)s_related")

 class Meta:
 abstract = True

class ChildA(Base):
 pass

class ChildB(Base):
 pass

ChildA.m2m 字段的反向名稱是 common_childa_related,而 ChildB.m2m 字段的反向名稱是 rare_childb_related。這取決于你如何使用 ‘%(class)s' 和'%(app_label)s來構(gòu)造你的反向名稱。如果你沒有這樣做,Django 就會在驗證 model (或運行 migrate) 時拋出錯誤。

如果你沒有在抽象基類中為某個關(guān)聯(lián)字段定義 related_name 屬性,那么默認(rèn)的反向名稱就是子類名稱加上'_set',它能否正常工作取決于你是否在子類中定義了同名字段。例如,在上面的代碼中,如果去掉 related_name屬性,在 ChildA中,m2m 字段的反向名稱就是 childa_set;而 ChildB的 m2m 字段的反向名稱就是 childb_set。

以上這篇Django model反向關(guān)聯(lián)名稱的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談Python中的全局鎖(GIL)問題

    淺談Python中的全局鎖(GIL)問題

    今天小編就為大家分享一篇淺談Python中的全局鎖(GIL)問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 如何使用Numpy創(chuàng)建三維矩陣

    如何使用Numpy創(chuàng)建三維矩陣

    這篇文章主要介紹了如何使用Numpy創(chuàng)建三維矩陣問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python?的counter()函數(shù)解析與示例詳解

    Python?的counter()函數(shù)解析與示例詳解

    在?Python?中,?collections?模塊提供了?Counter?類,用于計算可迭代對象中元素的數(shù)量,?Counter?是一個字典的子類,它以元素作為鍵,以元素出現(xiàn)的次數(shù)作為值進行計數(shù),本文給大家介紹Python?的counter()函數(shù),感興趣的朋友一起看看吧
    2023-08-08
  • python 調(diào)試?yán)渲R(小結(jié))

    python 調(diào)試?yán)渲R(小結(jié))

    這篇文章主要介紹了python 調(diào)試?yán)渲R(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • python做圖片搜索引擎并保存到本地詳情

    python做圖片搜索引擎并保存到本地詳情

    這篇文章主要介紹了python做圖片搜索引擎并保存到本地詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • 徹底卸載Anaconda詳細(xì)教程(超詳細(xì)!)

    徹底卸載Anaconda詳細(xì)教程(超詳細(xì)!)

    這篇文章主要給大家介紹了關(guān)于徹底卸載Anaconda的相關(guān)資料,Anaconda(官方網(wǎng)站)就是可以便捷獲取包且對包能夠進行管理,同時對環(huán)境可以統(tǒng)一管理的發(fā)行版本,需要的朋友可以參考下
    2023-11-11
  • Python使用GitPython操作Git版本庫的方法

    Python使用GitPython操作Git版本庫的方法

    這篇文章主要介紹了Python使用GitPython操作Git版本庫的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Pandas之?dāng)?shù)據(jù)追加df.append方式

    Pandas之?dāng)?shù)據(jù)追加df.append方式

    這篇文章主要介紹了Pandas之?dāng)?shù)據(jù)追加df.append方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python+Selenium實現(xiàn)讀取網(wǎng)易郵箱驗證碼

    Python+Selenium實現(xiàn)讀取網(wǎng)易郵箱驗證碼

    在自動化工作中,有可能會遇到一些發(fā)送郵箱驗證碼類似的功能。本文將利用Python?Selenium實現(xiàn)自動化讀取網(wǎng)易郵箱驗證碼,感興趣的可以了解一下
    2022-03-03
  • 關(guān)于Python函數(shù)參數(shù)的進階用法

    關(guān)于Python函數(shù)參數(shù)的進階用法

    這篇文章主要給大家分享的是Python函數(shù)參數(shù)的進階用法,Python函數(shù)的參數(shù)根據(jù)函數(shù) 在調(diào)用時 傳參的形式分為關(guān)鍵字參數(shù)和位置參數(shù),下面文章小編就來介紹相關(guān)資料,需要的朋友可以參考一下
    2021-10-10

最新評論

岑溪市| 广昌县| 资溪县| 东乌珠穆沁旗| 韶关市| 扬州市| 阳春市| 隆子县| 登封市| 喀什市| 长乐市| 剑川县| 道真| 新津县| 迭部县| 长宁县| 乌鲁木齐县| 斗六市| 阜平县| 安远县| 辰溪县| 郯城县| 周宁县| 仁化县| 塘沽区| 集贤县| 石城县| 淳安县| 泌阳县| 德化县| 九江市| 旅游| 乌恰县| 双城市| 大足县| 舞钢市| 汉中市| 巴东县| 马关县| 乐亭县| 盐城市|