我查询模型:
Members.objects.all()
它返回:
Eric, Salesman, X-Shop
Freddie, Manager, X2-Shop
Teddy, Salesman, X2-Shop
Sean, Manager, X2-Shop
我想知道最好的射击方法
对我的数据库的一个group_by
查询,例如:
Members.objects.all().group_by('designation')
当然,这不管用。
我知道我们可以在django/db/models/query.py
上做一些技巧,但我只是想知道如何在不打补丁的情况下做到这一点。
还可以使用
regroup
模板标记按属性分组。从文档中:看起来像这样:
我相信它也适用于
QuerySet
。来源:https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#regroup
编辑:注意
regroup
标记不会像您希望的那样工作,如果您的字典列表不是按键排序的。它迭代工作。因此,在将列表传递给regroup
标记之前,请按grouper的键对其进行排序。如果要进行聚合,可以使用aggregation features of the ORM:
这将生成一个类似于
结果会是
一个简单的解决方案,但不是正确的方法是使用raw SQL:
另一种解决方案是使用
group_by
属性:现在可以遍历results变量来检索结果。注意
group_by
没有文档记录,可能在Django的未来版本中更改。还有。。。为什么要使用
group_by
?如果不使用聚合,可以使用order_by
来获得相同的结果。相关问题 更多 >
编程相关推荐