【Django】对符合条件的某个字段进行求和,聚合函…

2018-07-04 02:16:22来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

对符合条件的某个字段求和

  之前在开发的时候,有同事问Django是否存在着这样的方法,可以直接将符合条件的某个字段直接求和.

  当时不知道这样的方法是否存在,但是想了想自己解决这类似问题的方法,先用filter将符合条件的取出来,然后进行for循环,取出需要的字段,进行求和.感觉是挺low的,于是一起Baidu,写代码测试最后找到了可以求值的方法,聚合函数annotate().

from django.db.models import Sum
from models import Book
all_price = Book.objects.values('price').annotate(num_books=Sum('price')).filter(author='Yu')
print all_price[0]['num_books'] 输出结果:650

上面的参数换个顺序,不会出错但不符合预期结果.

all_price = Book.objects.annotate(num_books=Sum('price')).filter(author='Yu').values('price')
print all_youxibi[0]['num_books']
输出结果:'nums_book'

 

 

该同事昨天也就是2018-07-03离职了,希望能过得开心.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:常见的反爬虫和应对方法

下一篇:博客第一篇:博客申请理由