python - Django 中的高级数据库查询

标签 python django orm django-models django-views

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

姓名|平均|评价

马可| 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/

相关文章:

php - Doctrine 2 WHERE IN 子句使用实体集合

database - 从对象定义生成数据库表

python - 为列表中的元素建立索引

django - 'UpdateView with a ModelForm as form_class'-issue

python - 阅读pdf文件的内容

python - Django Datatables Views 不显示数据表,只显示 json

Django 管理员自动完成关闭

c# - 尝试在 Entity Framework 核心中添加数据库迁移时,为什么会出现 contentRootPath null 异常?

python - 广度优先搜索算法

Python 3 查找两点之间的字符串