聚合函数
- 使用
aggregate()
过滤器调用聚合函数,返回单个对象
- 聚合函数包括:
Avg
,Max
,Min
,Sum
,Count
- 使用
Count
时,一般不需要 aggregate()
过滤器,直接调用即可
- 被定义在
django.db.models
中
统计总的阅读量
from django.db.models import Sum
def bookList(request):
# 查询编号不等于3的书籍
bookInfos = BookInfo.books.filter(~Q(id=3))
# 统计总的阅读量
readcount = BookInfo.books.aggregate(Sum('readcount'))
# 构造上下文
context = {'booklist':bookInfos,'readcount':readcount}
return render(request, 'Book/booklist.html', context)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>书籍列表信息</title>
</head>
<body>
<h1>总阅读量:{{ readcount.readcount__sum }}</h1>
<ul>
{% for book in booklist %}
<li>{{ book.name }}</li>
{% endfor %}
</ul>
</body>
</html>