日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

django正反向查询

發(fā)布時(shí)間:2023/11/28 生活经验 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django正反向查询 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

django正反向查詢

當(dāng)我們的表存在外鍵想要從一找多的時(shí)候該怎么查找,當(dāng)我們從多找一的時(shí)候又應(yīng)該怎么查找.

一找多

  1. 首先我們要?jiǎng)?chuàng)建一個(gè)項(xiàng)目,在項(xiàng)目的model.py中創(chuàng)建兩個(gè)模型.
    from django.db import modelsclass 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)
  1. 在我們的views.py中創(chuàng)建我們的視圖類.
 from django.shortcuts import render,HttpResponsefrom django.views import Viewfrom .models import UserInfo, UserTypeclass Index(View):def get(self, request):#一找多,一個(gè)用戶類型應(yīng)該對(duì)應(yīng)多個(gè)用戶.#首先我們找到一個(gè)id為1的用戶對(duì)象results = UserType.objects.filter(id=1).first()#然后用多的那個(gè)類名的小寫對(duì)加下劃線加set可以找到一個(gè)類型對(duì)應(yīng)的所有用戶objs = results.userinfo_set.all()#找到相應(yīng)的用戶的信息for row in objs:print(row.name)return HttpResponse('ok')
  1. 配置url,運(yùn)行項(xiàng)目可以看到運(yùn)行的結(jié)果
    from django.contrib import adminfrom django.urls import pathfrom . import viewsurlpatterns = [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)

運(yùn)行就可一看到結(jié)果.

備注:

  • 多找一的時(shí)候比較簡(jiǎn)單,在一找多的時(shí)候有點(diǎn)繞,所以就簡(jiǎn)單處理一下多找一.

總結(jié)

以上是生活随笔為你收集整理的django正反向查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。