Добавьте значение счетчика для установки
-
10-12-2019 - |
Вопрос
Я использую Django-Taggit в элементы теги в приложении списка Todo.
Я пытаюсь перечислить каждый из тегов вместе с количеством действий, связанных с каждым тегом, чтобы он мог прочитать:
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? Я предполагаю, что я должен повторять все теги в каждом наборе?
Решение
Используйте аннотации: https://docs.djangoProject.com/ru/Дева / Темы / БД / Агрегация /
from django.db.models import Count
Tag.objects.annotate(action_count=Count('action'))
.
(Возможно, вам придется немного настроить это. Я предполагаю, что на связи с именем для Action
)