我有一个模型,看起来像这样:
class Item(models.Model):
name = models.CharField()
type = models.CharField()
tags = models.models.ManyToManyField(Tags)
为了呈现给定的视图,我有一个基于类型呈现项目列表的视图。因此,在我的视图中,有一个查询,例如:
items = Item.objects.filter(type='type_a')
那很容易和直接。现在我有一个额外的视图要求。为了满足该要求,我需要构建一个将标签与项目相关联的字典。因此,我期望的输出应该类似于:
{
'tag1': [item1, item2, item5],
'tag2': [item1, item4],
'tag3': [item3, item5]
}
如何最有效地完成这个任务?有没有办法在不为每个标签发出新查询的情况下完成?