QuerySet按几个字段分组Django

时间:2018-11-06 13:40:48

标签: python django django-models

我正在尝试查询,并且想按几个字段分组。这些字段中的一些是外键。当我重新设置查询时,我希望这些外键成为各自模型的对象。我发现按查询集分组的唯一方法是values('model1', 'model2', 'somefield')。但是,当我执行此操作时,我从这些字段中获得的值就是这些对象的ID。

我要寻找的是为此设置的等效查询:

SELECT model1, model2, somefield, sum(something) FROM table WHERE (conditions here) GROUP BY model1, model2, somefield

我希望model1model2实际上是模型对象,而不仅仅是ID。

有什么好办法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

使用常规Django模型查询时:

model_instances = Model.objects.filter(some condition).order_by('model1', 'model2', 'some_field')

model_instance获取一个类Model的实例数组,每个实例的外键属性也是相应模型的实例,因此model_instances[0].model1将是'Model1'的实例。 / p>

您可以检查有关查询here的Django参考。