Added article, category and taglist views.

pull/1/head
Calum Andrew Morrell 2025-02-16 22:38:59 +00:00
parent 89ae91ac35
commit 2722fbfcd7
1 changed files with 42 additions and 1 deletions

View File

@ -1 +1,42 @@
# Create your views here.
from django.shortcuts import get_object_or_404
from django.views.generic import DetailView, ListView
from .models import Article, Category
class ArticleList(ListView):
category = None
tag = None
paginate_by = 9
def get_queryset(self):
category_slug = self.kwargs.get('category', None)
self.tag = self.kwargs.get('tag', None)
if category_slug:
self.category = get_object_or_404(Category, slug=category_slug)
return Article.objects.filter(category=self.category).filter(is_published=True)
elif self.tag:
return Article.objects.filter(tags=self.tag).filter(is_published=True)
else:
return Article.objects.filter(is_published=True)
def get_context_data(self, *, object_list=None, **kwargs):
context = super(ArticleList, self).get_context_data(**kwargs)
context['category'] = self.category
context['tag'] = self.tag
return context
class ArticleDetail(DetailView):
model = Article
class CategoryList(ListView):
model = Category
class TagList(ListView):
template_name = 'articles/tag_list.html'
def get_queryset(self):
return Article.tags.tag_model.objects.all()