from django.views.generic import DetailView, ListView from django.http import HttpResponse from models import Article from forms import ArticleFilterForm 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() def get_context_data(self, **kwargs): context = super(NewsList, self).get_context_data(object_list=self.object_list) if self.request.GET: filter_form = ArticleFilterForm(self.request.GET) else: filter_form = ArticleFilterForm() context['article_filter_form'] = filter_form return context 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() def get_context_data(self, **kwargs): context = super(BlogList, self).get_context_data(object_list=self.object_list) if self.request.GET: filter_form = ArticleFilterForm(self.request.GET) else: filter_form = ArticleFilterForm() context['article_filter_form'] = filter_form return context class BlogDetail(DetailView): model = Article slug_field = 'slug' template_name = 'article/article.html'