Django groupby on manyToMany field

时间:2016-08-01 06:14:59

标签: django django-models django-queryset

class Model1():
    name = models.charField()  # this field has only 4 choices, so only 4 entries would be there

class model2():
    field1 = models.charfield()
    field2 = model.ManytoManyField(Model1, related_name="model2")

现在我要做的是查询model2(在field2上),并在此字段的基础上按model2结果分组。

假设model1中的4个值为A, B, C, D。 因此,当我在model2上查询时,我应该能够获得按A, B, C, D分组的结果。类似下面的内容

[
  {
     "name": "A",
     "field1": []
  },
  {
     "name": "B",
     "field1": []
  },
  ...
]

假设我们使用postgresql,所以我们可以在查询中使用extra = {}参数。到目前为止,我使用itertools groupby并不是很有效率。寻找orm查询,如果可能的话,原始查询。

参见附图以供参考

image

0 个答案:

没有答案