久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

django中related_name的用法說明

瀏覽:5日期:2024-10-02 15:02:51

我們從一個(gè)簡(jiǎn)單的事說起:

吃貨君到水果攤撿漏買了兩種水果,分別是人參果和蟠桃;后來水果攤主冥冥中感覺自己遺失了重寶,似乎和一個(gè)100歲的老爺爺有關(guān),翻看自己的收款賬單,當(dāng)看到吃貨君的賬單時(shí)心頭一緊,就是他買走了我的寶貝,我就要看看他買了我的什么寶貝! 店主通過吃貨君的名字找到了他買的水果,發(fā)現(xiàn)竟然有萬年蟠桃以及億年人參過后,嚎啕大哭起來!!!

吃飯君是走了什么運(yùn)呢???

下面我們根據(jù)上面的小情節(jié)定義兩個(gè)模型,分別是買主模型以及水果模型,一個(gè)買主對(duì)應(yīng)多個(gè)水果模型,簡(jiǎn)單的一對(duì)多模型:

class Buyer(models.Model): name = models.CharField(verbose_name=’買主名’, max_length=10) Alipay_id = models.CharField(verbose_name=’支付寶賬號(hào)’) age = models.IntegerField(verbose_name=’買主年齡’,blank = True) class Fruit(models.Model): buyer = models.ForeignKey(Buyer, related_name=’buyer_fruit’) fruit_name = models.CharField(verbose_name=’水果名’, max_length=10) weight = models.FloatField(verbose_name=’水果重量’)

通常,我們要查詢買主買了哪些水果,首先要根據(jù)條件找到買主信息,然后根據(jù)買主信息找到買主所購買的水果,本例中如下:

#首先獲得水果模型中外鍵指向的表中對(duì)象:buyer = Buyer.objects.filter(age = 100).first() #然后通過‘_set’方法獲得子表中的數(shù)據(jù):fruits = buyer.fruit_set.all() '''django 默認(rèn)每個(gè)主表的對(duì)象都有一個(gè)是外鍵的屬性,可以通過它來查詢到所有屬于主表的子表的信息。 這個(gè)屬性的名稱默認(rèn)是以子表的名稱小寫加上_set()來表示,這里我們的主表是buyer,字表是fruit,所以主表外鍵的屬性就是fruit_set'''

上面的fruit_set是django為對(duì)象buyer默認(rèn)創(chuàng)建的外鍵的屬性,個(gè)人建議采用自定義的方式定義主表的外鍵,這樣使用時(shí)更熟悉一些吧!

而related_name就實(shí)現(xiàn)這個(gè)功能,在字表中定義外鍵時(shí),增加related_name字段指定這個(gè)字表在主表中對(duì)應(yīng)的外鍵屬性,

如下:

class Fruit(models.Model): buyer = models.ForeignKey(Buyer, related_name=’buyer_fruit’) '''主表:buyer子表:fruit子表在主表中對(duì)應(yīng)的外鍵屬性:related_name=’buyer_fruit’'''

那么我們就可以通過自定義外鍵的方式找到需要的信息了:

#首先獲得水果模型中外鍵指向的表中對(duì)象:buyer = Buyer.objects.filter(age = 100).first() #然后通過子表中自定義的外鍵獲取子表的所有信息:fruits = buyer.buyer_fruit.all()

以上這篇django中related_name的用法說明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 航空| 喀什市| 永泰县| 吉木乃县| 临清市| 泌阳县| 玉山县| 昌图县| 泰州市| 弥渡县| 安泽县| 延津县| 阿城市| 望谟县| 南安市| 隆尧县| 南华县| 泗阳县| 新晃| 奎屯市| 额敏县| 通州区| 靖安县| 涟源市| 子长县| 巩留县| 工布江达县| 麻栗坡县| 连南| 康保县| 广宗县| 云阳县| 德安县| 卫辉市| 东源县| 托里县| 普安县| 苏尼特左旗| 海晏县| 涟源市| 徐汇区|