from django.contrib import messages from django.contrib.sitemaps import Sitemap from django.core.mail import mail_managers from django.shortcuts import render, get_object_or_404, redirect from django.views.generic import ListView, DetailView from django.views.generic.edit import FormView, CreateView from news.forms import CommentForm from news.models import * class NewsList(ListView): model = News template_name = 'news/list.jinja' queryset = News.objects.filter(is_public=True).order_by('-pk') def get_queryset(self): tag = self.request.GET.get('tag', None) retval = self.queryset if tag: retval = self.queryset.filter( tags_list__slug__iexact=tag, is_public=True).order_by('-pk') return retval def get_context_data(self, **kwargs): retval = super(NewsList, self).get_context_data() tag = self.request.GET.get('tag', None) if tag: try: retval['tag'] = NewsTag.objects.get(slug=tag) except: pass return retval def news_detail(request, slug): object = get_object_or_404(News, slug__iexact=slug, is_public=True) form = CommentForm(request.POST or None) if form.is_valid(): comment = form.save(commit=False) comment.news = object comment.save() mail_managers('Новый комментарий к новости', ''' Имя: {} Email: {} Комментарий: {} Новость: {} Ссылка на новость: http://batiskaf-kz.kz{} '''.format( form.cleaned_data['name'], form.cleaned_data['email'], form.cleaned_data['text'], object.title, object.get_absolute_url(), )) messages.success(request, 'Ваш комментарий успешно опубликован!') return redirect(object.get_absolute_url() + '#comment{}'.format(comment.pk)) c = dict( object=object, form=form ) return render(request, 'news/detail.jinja', c) class NewsSitemap(Sitemap): changefreq = "never" priority = 0.7 def items(self): return News.objects.filter(is_public=True) def lastmod(self, obj): return obj.created