我在谷歌上搜索了一下,有一种更简单的使用Cast的方法,但问题是,我相信对于django 2.0来说,我的是django 1.9
我找到了一篇文章,我试过了,虽然它对我不太管用。
假设我有一个带有value和max字段的模型。我想得到所有value和max的和,然后除以它们得到平均值。我所做的只是得到一行并返回行的avg,有人能让我知道我在这里做错了什么吗?
model_calcuation = Model.objects.filter().annotate(
sum_score=Sum('value', output_field=FloatField()),
sum_max=Sum('max', output_field=FloatField())
).annotate(
avg=F('sum_score') / F('sum_max')
)提前感谢您的帮助
发布于 2018-08-02 18:01:12
如果我正确理解了您的问题,您正在寻找aggregate()操作。
from django.db.models import F, Sum
model_calcuation = Model.objects.aggregate(result=Sum(F('value')) / Sum(F('max')))https://stackoverflow.com/questions/51659321
复制相似问题