【问题标题】:Advanced database query in DjangoDjango中的高级数据库查询
【发布时间】:2013-01-23 16:37:23
【问题描述】:

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

名称|变量|评价

马可| 9.6 | 1

马可| 9.3 | 2

凯文 | 8.8 | 1

凯文 | 9.4 | 2

所以我需要以这种方式获取这些数据以在模板中显示表格:

姓名 |评估1 |评估2

马可| 9.6 | 9.3

凯文 | 8.8 | 9.4

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

【问题讨论】:

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


    【解决方案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 对象传递给模板应该可以正常工作,但请注意,它是一个 generator,并且在您对其进行迭代后会耗尽。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-31
      • 2020-07-25
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      相关资源
      最近更新 更多