我有一个模特

class ItemPrice( models.Model ):
     price = models.DecimalField ( max_digits = 8, decimal_places=2 )
     ....

我try 这样计算此查询集中的总和price:

items = ItemPrice.objects.all().annotate(Sum('price'))

此查询中有什么问题?或者,有没有其他方法来计算price列的总和?

我知道这可以通过在查询集上使用for循环来实现,但是我需要一个优雅的解决方案.

谢谢

推荐答案

你可能在找aggregate

from django.db.models import Sum

ItemPrice.objects.aggregate(Sum('price'))
# returns {'price__sum': 1000} for example

Django相关问答推荐

Django在保存时更新m2m对象

Django 5.0.2:TypeError:获取切片后无法过滤查询

Django中的Sync_to_Async修饰器、异步视图

设置wagail开发环境时出现ImportError:";无法从';wagta.search;";导入名称.

通过在其他查询中使用来过滤对象

Django:获取每组最新的N条记录

"" 需要有字段 "id" 的值才能使用这种多对多关系

所有子元素的Django自递归外键过滤器查询

在 Bootstrap 中使单击的选项卡处于活动状态

Django聚合:仅求和返回值?

在 Django 中使用 AuthenticationForm

Django:如何在视图中获取格式日期?

UnicodeEncodeError:ascii编解码器无法编码字符

Django urls 直接到 html 模板

Django中的自定义排序

保存前向 ModelForm 对象添加数据

如何找到两个 Django 查询集的交集?

Django 自定义用户邮箱帐户验证

Django模板转换为字符串

如何在 Python 中运行另一个脚本而不等待它完成?