Dango:如何使用过滤器获得总和

Dango: How to get the sum with filters

我有一个模型:

class SalesOrder(models.Model):
   area_coordinator = models.CharField(max_length=200, null=True, blank=True)
   order_number = models.IntegerField(null=True, blank=True)
   quantity = models.IntegerField(null=True, blank=True)

我需要得到基于 area_coordinator 的数量总和。

提前致谢。

如果你想按 area_coordinator 过滤,你可以简单地 aggregate the sum 这样:

from django.db.models import Sum
value = SalesOrder.objects.filter(area_coordinator='some value').aggregate(total=Sum('quantity'))['total']

但是,如果你想 GROUP BY area_coordinator 并得到它们的总和,那么试试这样:

from django.db.models import Sum
SalesOrder.objects.values('area_coordinator').annotate(total=Sum('quantity')).values('area_coordinator', 'total')