我如何在Django对象中舍入一个Sum

wz8daaqr  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(101)

我的代码:

verloningsoverzicht_cumulatief_dagen = 
Overzicht.objects.filter(periode=periode, jaar=jaar) 
            .values('testcontract', 'contract') 
            .annotate(aantal=Sum('aantal'))

字符串
现在假设. annotatieSum是6.3500000,我想把它四舍五入到6.35。

.annotate(aantal=round(Sum('aantal'),2))

34gzjxbg

34gzjxbg1#

你可以使用**Round**表达式[Django-doc]:

from django.db.models.functions import Round

verloningsoverzicht_cumulatief_dagen = Overzicht.objects.filter(
    periode=periode, jaar=jaar
) .values('testcontract', 'contract').annotate(
    aantal=Round(Sum('aantal'), 2)
)

字符串
如果使用django-3.2或更早版本,则可以使用:

from django.db.models import DecimalField, ExpressionWrapper
from django.db.models.functions import Round

verloningsoverzicht_cumulatief_dagen = Overzicht.objects.filter(
    periode=periode, jaar=jaar
) .values('testcontract', 'contract').annotate(
    aantal=ExpressionWrapper(
        Round(Sum('aantal') * 100) / 100,
        output_field=DecimalField(max_digits=12, decimal_places=2)
    )
)

相关问题