例如:求所有书的总价格和平均价格
原生sql
SELECT
SUM(price) AS "所有书总价格",
avg(price) AS "所有书平均价格"
FROM
web_book;...代码
# 需要导入的包
from django.db.models import Avg,Sum
price = models.Book.objects.all().aggregate(所有书总价格=...`publish_id`;
ORM分组和原生SQL对应图
这一块,我记得当初我迷茫了一段时间,主要是不知道如何和原生SQL对应上,根据多次测试经验,对应图如下。
?...注:分组(annotate)后面跟的values。
里面只能写外键字段的列和annotate里面的列,不能写其他。
如果分组分的不是外键字段,那就不能再跟values!...本篇主要补充的是一些高端操作,例如聚合操作,分组操作,分组再筛选操作,F查询和Q查询。
如何动态构造Q查询。
相对来说,Django还是自由度比价高的,而且写起来确实比较省心。