Advertisement
Guest User

Untitled

a guest
Jun 8th, 2020
14
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. model
  2. class Comment(models.Model):
  3.  
  4. user = models.ForeignKey(User, on_delete=models.CASCADE)
  5. post = models.ForeignKey(Post, on_delete=models.CASCADE)
  6. content = models.TextField(max_length=100000, verbose_name='')
  7. timestamp = models.DateTimeField(auto_now_add=True,verbose_name='Время', null=True, blank=True)
  8. likes = models.ManyToManyField(User, related_name='likes', blank=True)
  9.  
  10. reply = models.ForeignKey('Comment', on_delete=models.CASCADE, null=True, related_name='replies') <---------
  11. view
  12. class PostDetailView(FormMixin, DetailView):
  13. model = Post
  14. template_name = 'post/post_detail.html'
  15. form_class = CommentForm
  16. paginate_by = 2
  17.  
  18.  
  19. def get_success_url(self):
  20. return reverse('post-detail', kwargs={'pk': self.object.id})
  21.  
  22. def get_context_data(self, **kwargs):
  23.  
  24. context = super(PostDetailView, self).get_context_data(**kwargs)
  25. context['comments'] = Comment.objects.filter(post=self.object)
  26. context['form_comment'] = CommentForm(initial={'post': self.object})
  27. return context
  28.  
  29. def post(self, request, *args, **kwargs):
  30. self.object = self.get_object()
  31. form = self.get_form()
  32. if form.is_valid():
  33. return self.form_valid(form)
  34. else:
  35. return self.form_invalid(form)
  36.  
  37. def form_valid(self, form):
  38. form.instance.user = self.request.user
  39. form.instance.post = self.object
  40. form.save()
  41. return super(PostDetailView, self).form_valid(form)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement