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>
Проблема именно в выводе в шаблоне. Пробовал условия и циклы, не получилось.