Django中的高级数据库查询

时间:2013-02-08 00:20:28

标签: python django orm django-models django-views

我的数据库中有一个表(模型),如下所示:

名称| avarage |评价

马可| 9.6 | 1

马可| 9.3 | 2

凯文| 8.8 | 1

凯文| 9.4 | 2

所以我需要让这些数据以这种方式在模板上显示一个表:

姓名| eval1 | EVAL2

Marco | 9.6 | 9.3

凯文| 8.8 | 9.4

如何在我的视图中进行查询?

1 个答案:

答案 0 :(得分:1)

使用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对象传递给模板应该可以正常工作,但请注意它是生成器并且在迭代之后会耗尽。