Django-43-ORM多对多聚合函数(手动创建)

本文详细介绍了在Django框架下,如何使用ORM进行多对多关系表的聚合查询,包括平均值、总和、最大值等统计操作,特别展示了如何针对特定作者的书籍进行均价计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提(初始表数据)

针对的是手动创建的多对多关系表,因为是针对第三张关系表的操作

视图中需要导入聚合函数

book_manual表

 

author_manual表

 

book_manual_author_manual表 (关系表)

 

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

from django.shortcuts import render  # 导入显示页面的模块
from django.http import HttpResponse  # 导入显示字符串的模块
from django.db.models.aggregates import Count,Avg,Sum,Max,Min # 导入聚合函数
from .models import *  # 导入操作的模型类
import datetime

# Create your views here.
def more_to_more_select_jh_db(request):
    return HttpResponse("查询成功")

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

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

 

查询操作:以平均值为例

def more_to_more_select_jh_db(request):
    # book_manual表中所有书籍均价
    obj = BookManual.objects.all().aggregate(Avg("price"))
    # jun03这个作者的所有书籍均价
    obj1 = BookManual.objects.filter(bookmanual_authormanual__author__name="jun03").aggregate(Avg("price"))
    return HttpResponse("查询结果:%s,%s"%(obj, obj1))

运行状态访问查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值