python - 在通用视图中使用聚合 django rest
问题描述
我要在 django 中计算一个字段的总和,但我没有这样做我收到这个错误
AttributeError: 'dict' object has no attribute 'model'
它annotate
可以工作,但它多次显示一个字段,这就是我需要使用聚合的原因
这是我的代码
class TestStatistics(generics.ListAPIView):
serializer_class = TestSerializer
permission_classes = (permissions.AllowAny,)
filter_class = TestStatisticsFilter
def get_queryset(self):
test_id = self.request.GET.get('test_id')
data = Test.objects.filter( test_id=test_id).aggregate(total=Sum('total'))
print(data)
return data
有人可以帮我吗?提前致谢!
解决方案
每当调用 get_queryset() 时,您应该返回一个查询集而不是结果。聚合返回结果,而注释返回查询集,因此注释起作用。
如果一个字段显示多次,请查看您的数据并相应地优化您的查询集,在这种情况下切换到聚合并没有帮助。
推荐阅读
- python - 检查日期格式为 DD-MMM-YYYY
- spring - ClassNotFoundException: org/springframework/context/support/LiveBeansView 异常在 STS 中反复抛出
- android - 无法为 Kotlin 中的视图设置背景颜色
- flutter - 如何使用 Flutter Here SDK 检测地图中的平移手势
- python - 在 mac 中安装 conda 后的 .*shrc 和 .*profile 文件
- excel - 打开 Excel 密码恢复
- node.js - 如何使用“非原子”批处理/管道在 Scylla 中运行多个查询
- kivy - Kivy WebView 错误:无法添加到窗口,它已经有一个父级
- julia - 朱莉娅情节中的注释
- sql-server - 选择逻辑读取或执行时间较短的 SQL Server 查询