Django 解決model 反向引用中的related_name問(wèn)題
問(wèn)題:
定義表Apple:
class Apple( models.Model): origin_level = models.ForeignKey(AppleLevel) new_level = models.ForeignKey(AppleLevel)
出現(xiàn)如下問(wèn)題:
monitor.apple: Accessor for field ‘origin_level' clashes with related field ‘AppleLevel.apple_set'. Add a related_name argument to the definition for ‘origin_level'.
monitor.apple: Accessor for field ‘new_level' clashes with related field ‘AppleLevel.apple_set'. Add a related_name argument to the definition for ‘new_level'.
原因:
一個(gè)數(shù)據(jù)表同時(shí)兩次外鍵引用另一個(gè)表,出現(xiàn)重名問(wèn)題。
解決辦法:
使用related_name屬性定義名稱(related_name是關(guān)聯(lián)對(duì)象反向引用描述符)。
具體修改代碼如下:
class Apple( models.Model): origin_level = models.ForeignKey(AppleLevel, related_name='orgin_level_appleset') new_level = models.ForeignKey(AppleLevel, related_name='new_level_appleset')
related_name使用之后,有什么用處呢?
用處就是:
通過(guò)AppleLevel可以得到引用自身的Apple對(duì)象。
例如,
通過(guò)origin_level引用AppleLevel 中id為12的Apple的所有對(duì)象
AppleLevel.object.get(id=12).origin_level_appleset.objects.all()
通過(guò)new_level引用AppleLevel 中id為12的Apple的所有對(duì)象
AppleLevel.object.get(id=12).new_level_appleset.objects.all()
以上這篇Django 解決model 反向引用中的related_name問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用Scrapy爬蟲(chóng)框架全站爬取圖片并保存本地的實(shí)現(xiàn)代碼
這篇文章主要介紹了Python使用Scrapy爬蟲(chóng)框架全站爬取圖片并保存本地的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-03-03
Numpy中np.vstack()?和?np.hstack()?的實(shí)現(xiàn)
本文主要介紹了Numpy中np.vstack()和np.hstack()的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-04-04
Python數(shù)據(jù)分析與機(jī)器學(xué)習(xí)在金融風(fēng)控中的應(yīng)用小結(jié)
本篇詳解了Python數(shù)據(jù)分析與機(jī)器學(xué)習(xí)在金融風(fēng)控中的應(yīng)用,包括數(shù)據(jù)收集與預(yù)處理、信用風(fēng)險(xiǎn)評(píng)估模型、市場(chǎng)風(fēng)險(xiǎn)管理模型和操作風(fēng)險(xiǎn)監(jiān)控模型,感興趣的朋友跟隨小編一起看看吧2024-06-06
使用Python進(jìn)行中文繁簡(jiǎn)轉(zhuǎn)換的實(shí)現(xiàn)代碼
這篇文章主要介紹了使用Python進(jìn)行中文繁簡(jiǎn)轉(zhuǎn)換的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Python數(shù)據(jù)結(jié)構(gòu)列表
這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)列表,本文重點(diǎn)內(nèi)容主要是對(duì)列表數(shù)據(jù)結(jié)構(gòu)的使用,在Python中,序列是一組按順序排列的值。Python?有?3?種內(nèi)置的序列類型:字符串、?元組和列表,下面一起進(jìn)入文章了解更詳細(xì)內(nèi)容吧,需要的小伙伴可以參考一下</P><P>2021-12-12
Win10 GPU運(yùn)算環(huán)境搭建(CUDA10.0+Cudnn 7.6.5+pytroch1.2+tensorflow1.
熟悉深度學(xué)習(xí)的人都知道,深度學(xué)習(xí)是需要訓(xùn)練的,本文主要介紹了Win10 GPU運(yùn)算環(huán)境搭建,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
python中dropna()函數(shù)的作用舉例說(shuō)明
這篇文章主要給大家介紹了關(guān)于python中dropna()函數(shù)的相關(guān)資料,dropna()是pandas庫(kù)中的一個(gè)函數(shù),用于刪除DataFrame中的缺失值,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11

