【发布时间】:2019-02-07 10:21:33
【问题描述】:
我需要从 Django 查询集中计算两个字段的 sumproduct。
我已经检查了答案 Django Aggregation: Summation of Multiplication of two fields 但它不起作用。 他们为 django
from django.db.models import Sum
MyModel.objects.filter(<filters>).aggregate(Sum('field1', field="field1*field2"))
返回 'field1' 的总和,而不是定义的 field="field1*field2"
对于 django >= 1.8
from django.db.models import Sum, F
MyModel.objects.filter(<filters>).aggregate(Sum(F('field1')*F('field2')))
返回 TypeError:复杂聚合需要别名
【问题讨论】:
-
你的 Django 版本是多少?
-
@MohammadUmair 我的 Django 版本是 2.1.2,我检查了链接中建议用于 django >= 1.8 的第二个代码,但效果不佳
-
from django.db.models import Sum, F MyModel.objects.filter(
).aggregate(Sum(F('field1')*F('field2')))跨度> -
我收到错误“复杂聚合需要别名”
-
您没有指定该总和的存储位置
标签: python django-models django-queryset