django正反向查詢

2021-10-11 14:34:54 字數 1789 閱讀 1887

django正反向查詢

當我們的表存在外來鍵想要從一找多的時候該怎麼查詢,當我們從多找一的時候又應該怎麼查詢.

一找多首先我們要建立乙個專案,在專案的model.py中建立兩個模型.

from django.db import models

class

usertype

(models.model)

:

title = models.charfield(max_length=32)

class

userinfo

(models.model)

:

name = models.charfield(max_length=16)

age = models.integerfield(

) ut = models.foreignkey(

'usertype'

,on_delete=models.cascade)

在我們的views.py中建立我們的檢視類.

:#一找多,乙個使用者型別應該對應多個使用者.

#首先我們找到乙個id為1的使用者物件

results = usertype.objects.

filter(id

=1).first(

)#然後用多的那個類名的小寫對加下劃線加set可以找到乙個型別對應的所有使用者

objs = results.userinfo_set.

all(

)#找到相應的使用者的資訊

)配置url,執行專案可以看到執行的結果

from django.contrib import admin

from django.urls import path

from

.import views

urlpatterns =

[ path(

'admin/'

, admin.site.urls)

, path(

'index/'

,views.index)

, path(

'newindex/'

,views.newindex.as_view())

]

多找一

class

index

(view)

:def

get(self, request)

: result=userinfo.objects.

all(

)for obj in result:

print

(obj.name,obj.age,obj.ut.

id)

執行就可一看到結果.

備註:

Django之ORM正反向查詢

在orm查詢中,一般分為正向查詢和反向查詢。至於什麼是正向查詢和反向查詢,還要從表關係說起。舉個簡單的例子,就拿圖書和出版社來說,一般乙個圖書只有乙個出版社,但是乙個圖書一般有多個圖書,外來鍵關係一般建立在多的一側,也就是說,外來鍵關係是建立在圖書的表模型中的。而正向查詢就是從多的一側出發,即圖書表...

正反向 多表查詢

正向 反向外來鍵字段在我手上那麼,我查你就是正向 外來鍵字段如果不在手上,我查你就是反向 book 外來鍵字段在書那兒 正向 publish publish 外來鍵字段在書那兒 反向 book 一對一和多對多正反向的判斷也是如此 正向查詢按欄位 反向查詢按表名小寫 set 1.查詢書籍主鍵為1的出版...

序列化正反向查詢

序列化 正向查詢 from rest framework import serializers from users.models import userinfo 正向查詢 class userinfoserializer serializers.serializer 類名小寫.外來鍵字段 good...