婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Django 外鍵查詢的實現

Django 外鍵查詢的實現

熱門標簽:無錫客服外呼系統一般多少錢 百度地圖標注位置怎么修改 地圖標注視頻廣告 洪澤縣地圖標注 北京電信外呼系統靠譜嗎 大連crm外呼系統 梅州外呼業務系統 高德地圖標注是免費的嗎 老人電話機器人

創建三張表,詳情如下:

class Publish(models.Model):
    id = models.AutoField(primary_key=True, auto_created=True)
    pname = models.CharField(max_length=40)
    city = models.CharField(max_length=50)

    def __str__(self):
        return self.pname

class Author(models.Model):
    id = models.AutoField(primary_key=True, auto_created=True)
    aname = models.CharField(max_length=10)

    def __str__(self):
        return self.aname

class Book(models.Model):
    id = models.AutoField(primary_key=True, auto_created=True)
    bname = models.CharField(max_length=30)
    price = models.IntegerField()
    publish = models.ForeignKey(Publish, on_delete=models.CASCADE)
    author = models.ManyToManyField(Author)

    def __str__(self):
        return self.bname

一、一對多

通過類屬性進行查詢

# get方法的到的結果是一個對應類的對象
# 查詢某本書的出版社名字
book = Book.objects.get(id=1)
book.publish.pname

# 查詢某出版社下面有多少本書
# 此處的book是Book這張表的表名的小寫(必須是小寫)加上_set
pub = Publish.objects.get(id=1)
pub.book_set.all()

通過Django的雙下劃線(__)來進行查詢

# 通過出版社的相關信息進行查詢某一本書
Book.objects.filter(publish__city='北京')
Book.objects.filter(publish__id=1)

# 通過書籍的相關信息進行查詢其出版社
# 此處的book是Book這張表的表名的小寫(必須是小寫)
Publish.objects.filter(book__id=1)

# 在values以及values_list中使用(必須加引號)
# 通過書籍的相關信息進行查詢其出版社
# values得到的結果是一個內部是字典的查詢集
Book.objects.filter(id=1).values('publish__pname')
# values__list得到的結果是一個內部是元祖的查詢集
Book.objects.filter(id=1).values_list('publish__pname')

# 通過出版社的相關信息進行查詢某一本書
 Publish.objects.filter(id=1).values('book__bname')
 Publish.objects.filter(id=1).values_list('book__bname')

二、多對多(返回的內部是相關類的對象的查詢集)

在使用多對多時,Django會自動創建額外的一張表來存儲其相對關系。這里額外的一張表的表名是blogs_book_author。

# 通過作者的相關信息查詢其某一本書(返回的內部是Book的對象的查詢集)
Book.objects.filter(author__id=1)
Author.objects.filter(id=1).values('book')

# 查詢某一本書對應的作者有哪些(返回的內部是Author的對象的查詢集)
Author.objects.filter(book__id=1)
Book.objects.filter(id=1).values('author')

到此這篇關于Django 外鍵查詢的實現的文章就介紹到這了,更多相關Django 外鍵查詢內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

您可能感興趣的文章:
  • django admin.py 外鍵,反向查詢的實例

標簽:岳陽 泉州 吉林 安慶 清遠 怒江 長春 洛陽

巨人網絡通訊聲明:本文標題《Django 外鍵查詢的實現》,本文關鍵詞  Django,外鍵,查詢,的,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django 外鍵查詢的實現》相關的同類信息!
  • 本頁收集關于Django 外鍵查詢的實現的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 阿城市| 南雄市| 临汾市| 易门县| 雅江县| 丹江口市| 桂东县| 连州市| 合肥市| 建昌县| 伊宁县| 松滋市| 临安市| 芜湖市| 苍梧县| 岚皋县| 格尔木市| 曲阳县| 正定县| 平塘县| 广丰县| 唐山市| 凤阳县| 类乌齐县| 华池县| 上栗县| 武强县| 永州市| 外汇| 班玛县| 西乌珠穆沁旗| 大冶市| 司法| 贵港市| 卢湾区| 道孚县| 新安县| 云和县| 松江区| 芜湖市| 上饶县|