我有一个类似于以下的查询:
SELECT SUM(ISNULL(table.name)) FROM table
在Django中如何将其SUM
转换为QuerySet
?即xyz
它转换成什么样的运算MyModel.objects.xyz()
?
Answers:
更新:以下内容合并了原始查询的ISNULL方面:
from django.db.models import Sum
ModelName.objects.filter(field_name__isnull=True).aggregate(Sum('field_name'))
# returns {'field_name__sum': 1000} for example
您正在寻找Sum聚合函数,其功能如下:
ModelName.objects.aggregate(Sum('field_name'))
参见:https : //docs.djangoproject.com/en/dev/ref/models/querysets/#sum
ModelName.objects.filter(field_name__isnull=True).aggregate(Sum('field_name'))