0

我正在使用 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 中的每个标签? 我假设我必须遍历每组中的所有标签?

4

1 回答 1

0

使用注释:https ://docs.djangoproject.com/en/dev/topics/db/aggregation/

from django.db.models import Count

Tag.objects.annotate(action_count=Count('action'))

(您可能需要稍微调整一下。我猜的是 的相关名称Action

于 2012-03-09T14:59:49.487 回答