我正在使用django-taggit来标记待办事项列表应用中的项目。
我正在尝试列出每个标记以及与每个标记关联的操作数,以便它可以读取:
Tag A (1)
Tag B (3)
Tag C (2)
标签A有1个项目,标签B有3个等等
我在django-taggit中添加了一个布尔字段。所以现在我得到一个这样的标签列表:
visible_tags = Tag.objects.filter(visible=True).order_by('name')
hidden_tags = Tag.objects.filter(visible=False).order_by('name')
我可以得到像这样的项目(动作)的数量:
for tag in visible_tags:
print tag
print Action.objects.filter(tags__name__in=[tag]).count()
现在我想将这些计数附加到visible_tags和hidden_tags集,以便我可以在模板中迭代它们,如下所示:
{% for tag in visible_tags %}
{{ tag }} ({{ tag.count }})<br>
{% endfor %}
如何将.count值附加到visible_tags和hidden_tags中的每个标记?我假设我必须迭代每个集合中的所有标记?
答案 0 :(得分:0)
使用注释:https://docs.djangoproject.com/en/dev/topics/db/aggregation/
from django.db.models import Count
Tag.objects.annotate(action_count=Count('action'))
(你可能需要稍微调整一下。我猜测Action
的相关名称)