Django-24-ORM一对多查询

前提(初始数据表)

city表

user表

django_study.app01.views.py:新建一个one_to_more_select_db视图函数

from django.shortcuts import render  # 导入显示页面的模块
from django.http import HttpResponse  # 导入显示字符串的模块
from .models import *  # 导入操作的模型类

# Create your views here.

def one_to_more_select_db(request):
    return HttpResponse("查询成功")

django_study.django_study.urls:绑定url与视图函数

url(r'^one_to_more_select_db/$', one_to_more_select_db)

查询操作:方式一

def one_to_more_select_db(request):
    # 查询出城市为苏州的条数
    city_id = City.objects.filter(city_name="苏州")[0].city_id
    res = User.objects.filter(city_id=city_id).count()
    return HttpResponse("查询结果:%s"%res)

启动状态运行后查看

查询操作:方式二(双下划线可查询关联表value)

def one_to_more_select_db(request):
    # 查询出城市为苏州的条数
    res = User.objects.filter(city__city_name="苏州").count()
    return HttpResponse("查询结果:%s"%res)

启动状态运行后查看

正向查询

def one_to_more_select_db(request):
    # 查询出suner01这个用户所属的城市
    res = User.objects.filter(name="suner01").values("city__city_name")
    return HttpResponse("查询结果:%s"%res[0])

启动状态运行后查看

反向查询

def one_to_more_select_db(request):
    # 查询出suner01这个用户所属的城市
    res = City.objects.filter(user__name="suner01").values("city_name")
    return HttpResponse("查询结果:%s"%res[0])

启动状态运行后查看

猜你喜欢

转载自blog.csdn.net/qq_39620483/article/details/89205531