views.py中的十进制数

2024-06-25 22:59:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python/Django新手,请耐心等待!我有一些简单的django观点来总结账面价值:

def portfoyozet(request):
    librarysum = (
        textshare.objects.filter(user_id=request.user.id).aggregate(
            Sum("bookvalue")
        )["bookvalue__sum"]
        or 0
    )
    return render(request, "todo/libsum.html", {"librarysum": librarysum,})

这是完美的工作,但结果是不显示十进制值。4800,30变成4800,00我不需要在这里打转之类的。我只需要用十进制值来显示所有的值。这是一件相当常见的事情,但我不知道应该使用哪个过滤器。在谷歌搜索和更改我的视图时也发现了一些东西。例如:

def portfoyozet(request):
    librarysum = (
        textshare.objects.filter(user_id=request.user.id).aggregate(
            Sum("bookvalue")
        )["bookvalue__sum", 0.00]
        or 0
    )
    return render(request, "todo/libsum.html", {"librarysum": librarysum,})

但它也不起作用。作为最后手段,我不得不在这里寻求帮助。如果有人能帮我,我真的很感激。先谢谢你


Tags: oridreturnobjectsrequestdeffilteraggregate
1条回答
网友
1楼 · 发布于 2024-06-25 22:59:24

要使用的是Sum中的output_field参数,并将Sum的输出关联为一个FloatField:

from django.db.models import FloatField

#...

librarysum = textshare.objects.filter(user_id=request.user.id).aggregate(Sum('bookvalue', output_field=FloatField()))['bookvalue__sum']

相关问题 更多 >