Django计算了许多其他模型中一个模型的所有出现

时间:2015-11-03 14:16:35

标签: python django manytomanyfield

我使用的是django,我的模型名称为Tags

它在我的整个应用程序中使用15种不同的模型作为ManyToManyField。

我需要获得len / count所有特定标签的出现。

我是如何做到这一点的?我必须使用Aggregate / annotate吗?选择相关?或者完全不同的东西。使用forloops的当然不是一种选择。

1 个答案:

答案 0 :(得分:0)

如果您希望能够在一个请求中查询与标记相关的项目(如果它们是不同的Django模型),则应使用Django提供的contenttypes框架,而不是将Tags定义为ManyToMany字段。

文档中的示例正是您想要的。

https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#generic-relations

https://docs.djangoproject.com/en/1.8/ref/contrib/contenttypes/#reverse-generic-relations