国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Django學(xué)習(xí)筆記:多表關(guān)系映射

2023-07-08 23:09 作者:星空收集者  | 我要投稿

一對(duì)一關(guān)系

類的屬性值是author,但是生成的sql表的字段是author_id,指向author表的字段:id

在一對(duì)一中,添加數(shù)據(jù)有兩種補(bǔ)充外鍵指向的方式

第一種,通過(guò)屬性值=對(duì)象的方式添加
第二種,通過(guò)表的外鍵=數(shù)據(jù)id方式添加

值得注意的是,一對(duì)一的關(guān)系要求了兩個(gè)wife無(wú)法指向同一個(gè)author,一旦執(zhí)行,就會(huì)報(bào)錯(cuò)

正向查詢關(guān)聯(lián)的對(duì)象信息
反向查詢關(guān)聯(lián)的對(duì)象信息

不得不說(shuō),django在這方面做的優(yōu)化確實(shí)很方便,減少開發(fā)者用join來(lái)做多表聯(lián)立查詢的次數(shù)

一對(duì)多關(guān)系

數(shù)據(jù)插入和正向查詢

但是反向就不能直接用類名小寫了,因?yàn)闀?huì)報(bào)錯(cuò):

我們有兩種方法,最推薦的還是直接'小寫類名_set'屬性值來(lái)獲取攜帶關(guān)聯(lián)信息的類似于objects的對(duì)象,和objects一樣,后面可以接all( ),filter( )來(lái)獲取制定數(shù)據(jù)。

兩種等價(jià)的寫法

如上圖所示,第二種方法和第一種方法其實(shí)是等價(jià)的,但是顯然第一種更方便一點(diǎn),不必再顯式的利用關(guān)聯(lián)信息去篩選。

多對(duì)多關(guān)系

多對(duì)多的關(guān)系的增加和一對(duì)多類似,一對(duì)多的正向查詢得到是一個(gè)對(duì)象,而多對(duì)多無(wú)論是正向查詢還是反向查詢得到的都是多個(gè)對(duì)象的集合。

既可以正向添加關(guān)系,也可以反向添加,可以說(shuō)是非常靈活了。值得注意的是,方法一和方法二哪怕都執(zhí)行了也是不會(huì)有額外重復(fù)的效果,也就是說(shuō),關(guān)系只能添加一次。

其實(shí)創(chuàng)建對(duì)象和建立關(guān)系可以合為一步,只需把a(bǔ)dd函數(shù)改成create函數(shù)即可。

正向和反向都可以有這種用法:

正向查詢和反向查詢也是類似的用法,這里不再贅述。


Django學(xué)習(xí)筆記:多表關(guān)系映射的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
河源市| 沙洋县| 伊金霍洛旗| 马山县| 威海市| 乌兰察布市| 崇阳县| 陈巴尔虎旗| 麦盖提县| 双峰县| 甘孜| 华蓥市| 武山县| 丰顺县| 乌兰察布市| 昆明市| 太湖县| 元谋县| 乌拉特中旗| 宁阳县| 佛山市| 丰台区| 韩城市| 辉县市| 桃园县| 会同县| 台中县| 福清市| 夹江县| 曲沃县| 永宁县| 富裕县| 郴州市| 聂荣县| 大名县| 彝良县| 肥乡县| 东方市| 日喀则市| 承德县| 聂拉木县|