django正反向查询
生活随笔
收集整理的這篇文章主要介紹了
django正反向查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
django正反向查詢
當我們的表存在外鍵想要從一找多的時候該怎么查找,當我們從多找一的時候又應該怎么查找.
一找多
- 首先我們要創建一個項目,在項目的model.py中創建兩個模型.
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)
- 在我們的views.py中創建我們的視圖類.
from django.shortcuts import render,HttpResponsefrom django.views import Viewfrom .models import UserInfo, UserTypeclass Index(View):def get(self, request):#一找多,一個用戶類型應該對應多個用戶.#首先我們找到一個id為1的用戶對象results = UserType.objects.filter(id=1).first()#然后用多的那個類名的小寫對加下劃線加set可以找到一個類型對應的所有用戶objs = results.userinfo_set.all()#找到相應的用戶的信息for row in objs:print(row.name)return HttpResponse('ok')
- 配置url,運行項目可以看到運行的結果
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)
運行就可一看到結果.
備注:
- 多找一的時候比較簡單,在一找多的時候有點繞,所以就簡單處理一下多找一.
總結
以上是生活随笔為你收集整理的django正反向查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解释型语言与编译型的必须知识点
- 下一篇: django自带的分页功能