Django - 获取相关集合中的对象计数
Django - Get counts of objects in related sets
有两种型号:
class Article(..:
locations = ManyToMany('Location'...,related_name='articles')
class Location(...):
...
我正在寻找一种方法来获取任何位置出现的次数 related_set Article.locations
例如:
- 第 1 条 - 米兰、维也纳、巴黎
- 第 2 条 - 米兰、巴黎
- 第 3 条 - 巴黎
- 文章 - 迪拜
结果将是:
巴黎 - 3、米兰 - 2、维也纳 - 1、迪拜 -1
我这样结束:
Location.objects.all().annotate(Count(?))
是否可以一两次Queries
完成?我想避免使用循环。
此外,我只想考虑 Articles
的子集(过滤查询集)。
试试这个
Location.objects.all().annotate(
locations_count=Count('locations')
)
并在模板中
{{obj.locations_count}}
或
ax = Location.objects.all().count()
{{ax}}
希望对您有所帮助
有两种型号:
class Article(..:
locations = ManyToMany('Location'...,related_name='articles')
class Location(...):
...
我正在寻找一种方法来获取任何位置出现的次数 related_set Article.locations
例如:
- 第 1 条 - 米兰、维也纳、巴黎
- 第 2 条 - 米兰、巴黎
- 第 3 条 - 巴黎
- 文章 - 迪拜
结果将是:
巴黎 - 3、米兰 - 2、维也纳 - 1、迪拜 -1
我这样结束:
Location.objects.all().annotate(Count(?))
是否可以一两次Queries
完成?我想避免使用循环。
此外,我只想考虑 Articles
的子集(过滤查询集)。
试试这个
Location.objects.all().annotate(
locations_count=Count('locations')
)
并在模板中
{{obj.locations_count}}
或
ax = Location.objects.all().count()
{{ax}}
希望对您有所帮助