Django. Фильтры категорий в django template

я реализовал логику, где контент фильтруется по определенным категориям. Все работает правильно, но не получается эту логику вывести в темплейты.

Модели:

class Category(ModelWithSlugMixin):

    class Meta:
        verbose_name = 'Категория'
        verbose_name_plural = 'Категории'

    slugifying_field_name = 'title'
    title = models.CharField(verbose_name='Наименование', null=True,
                             max_length=255)
    slug = models.SlugField(verbose_name='Slug', unique=True, null=True,
                            blank=True, unique_for_date='publish')
    publish = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return str(self.title)

    def get_absolute_url(self):
        return reverse('article:category', kwargs={'category_slug': self.slug})


class Article(ModelWithSlugMixin):

    class Meta:
        verbose_name = 'Статья'
        verbose_name_plural = 'Статьи'

    slugifying_field_name = 'title'
    category = models.ForeignKey(Category, on_delete=models.SET_NULL,
                                 related_name='category', blank=False, null=True)
    title = models.CharField(verbose_name='Заголовок', max_length=255, null=True)
    slug = models.SlugField(verbose_name='Slug', unique=True, null=True,
                            blank=True, unique_for_date='publish')
    text = RichTextUploadingField(verbose_name='Текст', null=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE,
                               related_name='articles')
    publish = models.DateTimeField(default=timezone.now)
    created_at = models.DateField(auto_now_add=True)

    def __str__(self):
        return str(self.title)

    def get_absolute_url(self):
        return reverse('article:article-detail', kwargs={'slug': self.slug}

Представления:

class ArticleView(ListView):

    model = Article
    template_name = 'pages/analysis.html'
    context_object_name = 'articles'
    queryset = Article.objects.all()

    def get_context_data(self, **kwargs):
        context = super(ArticleView, self).get_context_data(**kwargs)
        # context['category'] = Category.objects.all()
        context['article_image'] = Photo.objects.all()
        context['article_pictures'] = Collage.objects.all()
        context['article_videos'] = Video.objects.all()

        return context


class ArticleCategoryView(ListView):

    model = Article
    template_name = 'pages/analysis.html'
    context_object_name = 'articles'

    def get_queryset(self):
        return Article.objects.filter(category__slug=self.kwargs['category_slug'])

    def get_context_data(self, **kwargs):
        context = super(ArticleCategoryView, self).get_context_data(**kwargs)
        context['cat_selected'] = context['articles'][0].category_id

        return context

Урл:

  path('category/<slug:category_slug>/', ArticleCategoryView.as_view(), name='category'),

И структура шаблона

<div class="widget widget_categories">

    <h3 class="widget-title">Categories</h3>

    <div class="form-group select-group">
        <label for="category" class="sr-only">Select Category</label>
        <select id="category" name="category"
                class="choice empty form-control">
            <option value="" disabled="" selected=""
                    data-default="">Выбери категорию
            </option>
            <option>First category</option>
            <option>Second category</option>
            <option>Third category</option>
        </select>
        <i class="fa fa-angle-down theme_button no-bg-button"
           aria-hidden="true"></i>
    </div>
</div>

Проблема именно в выводе в шаблоне. Пробовал условия и циклы, не получилось.

Вернуться на верх