from django.views.generic import DetailView, ListView from django.http import HttpResponse from models import Article class NewsList(ListView): model = Article template_name = 'article/news_list.html' paginate_by = 10 def get_queryset(self): if self.request.GET: qs = self.model.objects.news() themes = self.request.GET.getlist('theme') if themes: qs = qs.filter(theme__id__in=themes) tags = self.request.GET.getlist('tag') if tags: qs = qs.filter(tag__id__in=tags) return qs else: return self.model.objects.news() class NewsDetail(DetailView): model = Article slug_field = 'slug' template_name = 'article/news.html' class BlogList(ListView): model = Article template_name = 'article/blog_list.html' paginate_by = 10 def get_queryset(self): if self.request.GET: qs = self.model.objects.blogs() themes = self.request.GET.getlist('theme') if themes: qs = qs.filter(theme__id__in=themes) tags = self.request.GET.getlist('tag') if tags: qs = qs.filter(tag__id__in=tags) return qs else: return self.model.objects.blogs() class BlogDetail(DetailView): model = Article slug_field = 'slug' template_name = 'article/article.html'