在Django queryset中计算相同的字段值

时间:2018-04-30 22:04:49

标签: django django-models django-queryset django-database

我有一个包含三个字段的Django模型:productconditionquantity,其数据如下:

| Product | Condition | Quantity |
+---------+-----------+----------+
| A       | new       | 2        |
| A       | new       | 3        |
| A       | new       | 4        |
| A       | old       | 1        |
| A       | old       | 2        |
| B       | new       | 2        |
| B       | new       | 3        |
| B       | new       | 1        |
| B       | old       | 4        |
| B       | old       | 2        |

我希望将productcondition相等的条目数量相加:

| Product | Condition | Quantity |
+---------+-----------+----------+
| A       | new       | 9        |
| A       | old       | 3        |
| B       | new       | 6        |
| B       | old       | 6        |

这个answer有助于计算具有相同字段值的条目,但我需要计算两个字段。

我怎么能实现这个?

1 个答案:

答案 0 :(得分:3)

from django.db.models import Sum

Model.objects.values('product', 'condition').order_by().annotate(Sum('quantity'))