我的数据库中有一个表(模型),如下所示:
姓名|平均|评价
马可| 9.6 | 1
马可| 9.3 | 9.3 2
凯文 | 8.8 | 1
凯文 | 9.4 | 9.4 2
所以我需要获取这些数据,以这种方式在模板上显示表格:
名称 |评估1 |评估2
马可 | 9.6 | 9.3
凯文 | 8.8 | 9.4
如何在我的 View 中进行查询?
最佳答案
仅使用 ORM 没有简单的方法可以做到这一点。尝试使用itertools.groupby
:
from itertools import groupby
results = ModelCls.objects.order_by("name")
grouped = groupby(results, lambda r: r.name)
您现在已按名称对模型进行分组:
for name, objects in grouped:
# process model objects in each group
for obj in objects:
# do something with each object
将 groupby 对象传递给模板应该可以正常工作,但请注意,它是一个生成器,并且在迭代它后会耗尽。
关于python - Django 中的高级数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14763654/