Added article, category and taglist views.
parent
89ae91ac35
commit
2722fbfcd7
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue