首页 > 解决方案 > 在 Django 查询集中编辑注释结果

问题描述

我有一个查询集

queryset = BigTable.objects.values('field1__code', 'field2__code').annotate(Sum('field3'))

标签: djangodjango-querysetdjango-annotate

解决方案


您可以将总和除以 1'000,方法是将其包装在 a 中Value(..)

from django.db.models import FloatField, Sum, Value

queryset = BigTable.objects.values(
    'field1__code', 'field2__code'
).annotate(
    field3_sum=Sum('field3', output_field=FloatField())/Value(1000, output_field=FloatField())
)

但是,最好将您的字段命名为not field3_sum,因为这会产生错误的印象。也许你可以使用field3_sumdiv1000例如。

|floatformat在您的模板中,您可以使用模板过滤器 [Django-doc]进行渲染,例如:

{{ object.field3_sum|floatformat }}

推荐阅读