#正向#反向外來鍵字段在我手上那麼,我查你就是正向
外來鍵字段如果不在手上,我查你就是反向
book >>>外來鍵字段在書那兒(正向)>>>publish
publish >>>外來鍵字段在書那兒(反向)>>>book
一對一和多對多正反向的判斷也是如此
"""正向查詢按欄位
反向查詢按表名小寫
_set
..."""
#1.查詢書籍主鍵為1的出版社
#book_obj = models.book.objects.filter(pk=1).first()
## 書查出版社 正向
#res = book_obj.publish
#print(res)
#print(res.name)
#print(res.addr)
#2.查詢書籍主鍵為2的作者
#book_obj = models.book.objects.filter(pk=2).first()
## 書查作者 正向##
res = book_obj.authors.all() # , ]>##
print(res)
#3.查詢作者jason的**號碼
#author_obj = models.author.objects.filter(name='jason').first()
#res = author_obj.author_detail
#print(res)
#print(res.phone)
#print(res.addr)
"""在書寫orm語句的時候跟寫sql語句一樣的
不要企圖一次性將orm語句寫完 如果比較複雜 就寫一點看一點
正向什麼時候需要加.all()
當你的結果可能有多個的時候就需要加.all()
如果是乙個則直接拿到資料物件
book_obj.publish
book_obj.authors.all()
author_obj.author_detail
"""#
4.查詢出版社是東方出版社出版的書
#publish_obj = models.publish.objects.filter(name='東方出版社').first()
#出版社查書 反向##
res = publish_obj.book_set.all()
#print(res)
#5.查詢作者是jason寫過的書
#author_obj = models.author.objects.filter(name='jason').first()
#作者查書 反向##
res = author_obj.book_set.all()
#print(res)
#6.查詢手機號是110的作者姓名
#author_detail_obj = models.authordetail.objects.filter(phone=110).first()
#res = author_detail_obj.author
#print(res.name)
"""基於物件
反向查詢的時候
當你的查詢結果可以有多個的時候 就必須加_set.all()
當你的結果只有乙個的時候 不需要加_set.all()
自己總結出 自己方便記憶的即可 每個人都可以不一樣
"""
#基於雙下劃線的跨表查詢
#1.查詢jason的手機號和作者姓名
#res = models.author.objects.filter(name='jason').values('author_detail__phone','name')
#print(res)#反向
#res = models.authordetail.objects.filter(author__name='jason') # 拿作者姓名是jason的作者詳情
#res = models.authordetail.objects.filter(author__name='jason').values('phone','author__name')
#print(res)
#2.查詢書籍主鍵為1的出版社名稱和書的名稱
#res = models.book.objects.filter(pk=1).values('title','publish__name')
#print(res)#反向
#res = models.publish.objects.filter(book__id=1).values('name','book__title')
#print(res)
#3.查詢書籍主鍵為1的作者姓名
#res = models.book.objects.filter(pk=1).values('authors__name')
#print(res)#反向
#res = models.author.objects.filter(book__id=1).values('name')
#print(res)
#查詢書籍主鍵是1的作者的手機號
#book author authordetail
#res = models.book.objects.filter(pk=1).values('authors__author_detail__phone')
#print(res)
"""你只要掌握了正反向的概念
以及雙下劃線
那麼你就可以無限制的跨表
"""
django正反向查詢
django正反向查詢 當我們的表存在外來鍵想要從一找多的時候該怎麼查詢,當我們從多找一的時候又應該怎麼查詢.一找多首先我們要建立乙個專案,在專案的model.py中建立兩個模型.from django.db import models class usertype models.model tit...
序列化正反向查詢
序列化 正向查詢 from rest framework import serializers from users.models import userinfo 正向查詢 class userinfoserializer serializers.serializer 類名小寫.外來鍵字段 good...
Django之ORM正反向查詢
在orm查詢中,一般分為正向查詢和反向查詢。至於什麼是正向查詢和反向查詢,還要從表關係說起。舉個簡單的例子,就拿圖書和出版社來說,一般乙個圖書只有乙個出版社,但是乙個圖書一般有多個圖書,外來鍵關係一般建立在多的一側,也就是說,外來鍵關係是建立在圖書的表模型中的。而正向查詢就是從多的一側出發,即圖書表...