You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
55 lines
1.4 KiB
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'
|
|
|
|
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'
|
|
|
|
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' |