Как получить доступ к ПК для заголовка category_count в Django - PullRequest
1 голос
/ 08 мая 2020

У меня есть виджет категории, который использует функцию просмотра для подсчета количества публикаций в определенной категории и перечисления заголовков и количества. У меня есть заголовок в виде ссылки, и я хочу сделать ссылку на мою страницу сведений о категории, но, поскольку это просто заголовок, а не фактический объект категории, я не могу понять, что поместить в href в html.

Модель:

class Category(models.Model):
title = models.CharField(max_length=20)

class Meta:
    verbose_name = "Category"
    verbose_name_plural = "Categories"
    ordering = ['title']

def __str__(self):
    return self.title

Вид:

def get_category_count():
queryset = Post \
    .objects \
    .values('categories__title') \
    .annotate(Count('categories__title'))
return queryset

HTML:

{% for cat in category_count %}
  <div class="item d-flex justify-content-between">
    <a href="????????????????" class="ntd">
      {{ cat.categories__title }}
    </a>
    <span>{{ cat.categories__title__count }}</span>
  </div>
  <hr/>
{% endfor %}

1 Ответ

1 голос
/ 08 мая 2020

Вы должны запросить в обратном направлении:

from django.db.models import Count

def get_category_count():
    return Category.objects.annotate(<b>post_count=Count('post')</b>)

Теперь объекты Category содержат дополнительный атрибут .post_count, который содержит количество связанных счетчиков. Таким образом, вы можете выполнить рендеринг с помощью {{ cat.title }} и получить первичный ключ с помощью cat.pk:

{% for cat in category_count %}
    <div class="item d-flex justify-content-between">
        <a href="<i>something with</i> <b>{{ cat.pk }}</b>" class="ntd">{{ cat.title }}</a>
        <span>{{ cat.title }}</span>
    </div>
    <hr/>
{% endfor %}

Вам, конечно, нужно будет написать сам href, поскольку вы не предоставили никаких url / path, который вы хотите использовать. Вероятно, вам лучше использовать тег шаблона {% url &hellip; %} [Django -doc] для «вычисления» href.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...