avaaren

Untitled

Feb 24th, 2020
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.91 KB | None | 0 0
  1. from django.shortcuts import render, get_object_or_404, redirect
  2. from .models import Topic, Comment
  3. from .forms import NewTopicForm
  4. from django.views.generic.list import ListView
  5. from django.views.generic.detail import DetailView
  6. from django.views.generic.edit import CreateView, DeleteView, UpdateView
  7. from django.urls import reverse_lazy
  8. from django.utils.decorators import method_decorator
  9. from django.contrib.auth.decorators import login_required
  10. from slugify import slugify
  11.  
  12.  
  13. class TopicListView(ListView):
  14.     model = Topic
  15.     context_object_name = 'topic_list'
  16.     template_name = 'help/forum.html'
  17.  
  18.  
  19. class TopicDetailView(DetailView):
  20.     template_name = 'help/topic_detail.html'
  21.     queryset = Topic.objects.all()
  22.     context_object_name = 'topic'
  23.  
  24.  
  25.     def get_object(self):
  26.         slug = self.kwargs.get('slug')
  27.         year = self.kwargs.get('year')
  28.         month = self.kwargs.get('month')
  29.         day = self.kwargs.get('day')
  30.        
  31.         return get_object_or_404(Topic,
  32.                                  slug=slug, created__year=year,
  33.                                  created__month=month, created__day=day)
  34.  
  35.     def get_context_data(self, **kwargs):
  36.         data = super().get_context_data(**kwargs)
  37.         Вот тут!!!!
  38.         topic = self.get_object()
  39.         data['comments'] = topic.comments.all()
  40.         return data
  41.  
  42.  
  43. class TopicCreateView(CreateView):
  44.     form_class = NewTopicForm
  45.     model = Topic
  46.     template_name = 'help/create_topic.html'
  47.     # success_url = 'help/forum/'
  48.  
  49.    
  50.     @method_decorator(login_required)
  51.     def dispatch(self, *args, **kwargs):
  52.         return super(TopicCreateView, self).dispatch(*args, **kwargs)
  53.  
  54.     def form_valid(self, form):
  55.         instance = form.save(commit=False)
  56.         instance.author = self.request.user
  57.         instance.slug = slugify(instance.title)
  58.         instance.save()
  59.         return super().form_valid(form)
Advertisement
Add Comment
Please, Sign In to add comment