编程语言
首页 > 编程语言> > python – Django聚合:两个字段的乘法求和

python – Django聚合:两个字段的乘法求和

作者:互联网

我有一个这样的模型

class Task(models.Model):
   progress = models.PositiveIntegerField()
   estimated_days = models.PositiveIntegerField()

现在我想在数据库级别上进行计算Sum(progress * estimated_days).使用Django聚合我可以得到每个字段的总和,但不能得到字段乘法的总和.

解决方法:

更新:对于Django> = 1.8,请按照@kmmbvnr提供的答案进行操作

可以使用Django ORM:

这是你应该做的:

from django.db.models import Sum

total = ( Task.objects
            .filter(your-filter-here)
            .aggregate(
                total=Sum('progress', field="progress*estimated_days")
             )['total']
         )

注意:如果两个字段的类型不同,请说整数& float,您要返回的类型应作为Sum的第一个参数传递

这是一个迟到的答案,但我想它会帮助有人寻找同样的东西.

标签:python,django,django-models,django-queryset
来源: https://codeday.me/bug/20190916/1807297.html