最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
靖州| 清流县| 繁峙县| 岑巩县| 盐津县| 融水| 远安县| 科尔| 阿鲁科尔沁旗| 牡丹江市| 柏乡县| 沙河市| 泰兴市| 马鞍山市| 青冈县| 广德县| 开江县| 四川省| 大埔县| 德昌县| 黔东| 海盐县| 苏州市| 阿瓦提县| 五华县| 靖江市| 祁东县| 崇义县| 抚远县| 郴州市| 六盘水市| 马鞍山市| 石泉县| 叙永县| 兴国县| 林口县| 宝丰县| 双峰县| 商南县| 龙江县| 虎林市|