我正在创建一个预算应用程序,并希望找到每个已登录的用户的总和。现在我使用的是基于函数的视图,我用Post.objects.aggregate(sum = Sum('expense'))来总结开销,问题是它总结了数据库中的每个人,但我希望它只对当前登录的用户的开销进行汇总。在我的模型中,我有一个作者字段,但我不知道如何只为当前登录的用户进行求和。
发布于 2021-08-12 18:04:14
您可以这样做,以获得当前用户的开销
Post.objects.filter(author=request.user).aggregate(sum = Sum('expense')),这将返回当前登录用户的总和。
发布于 2021-08-12 18:07:38
您可以对每个用户的和进行注释,方法如下:
from django.db.models import Sum
User.objects.annotate(total=Sum('post__expense'))由此产生的User对象将包含相关posts的expenses之和。
对于已登录的用户,可以使用以下方法进行计算:
from django.db.models import Sum
request.user.post_set.aggregate(total=Sum('expense'))['total'] or 0https://stackoverflow.com/questions/68762265
复制相似问题