Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- model
- class Comment(models.Model):
- user = models.ForeignKey(User, on_delete=models.CASCADE)
- post = models.ForeignKey(Post, on_delete=models.CASCADE)
- content = models.TextField(max_length=100000, verbose_name='')
- timestamp = models.DateTimeField(auto_now_add=True,verbose_name='Время', null=True, blank=True)
- likes = models.ManyToManyField(User, related_name='likes', blank=True)
- reply = models.ForeignKey('Comment', on_delete=models.CASCADE, null=True, related_name='replies') <---------
- view
- class PostDetailView(FormMixin, DetailView):
- model = Post
- template_name = 'post/post_detail.html'
- form_class = CommentForm
- paginate_by = 2
- def get_success_url(self):
- return reverse('post-detail', kwargs={'pk': self.object.id})
- def get_context_data(self, **kwargs):
- context = super(PostDetailView, self).get_context_data(**kwargs)
- context['comments'] = Comment.objects.filter(post=self.object)
- context['form_comment'] = CommentForm(initial={'post': self.object})
- return context
- def post(self, request, *args, **kwargs):
- self.object = self.get_object()
- form = self.get_form()
- if form.is_valid():
- return self.form_valid(form)
- else:
- return self.form_invalid(form)
- def form_valid(self, form):
- form.instance.user = self.request.user
- form.instance.post = self.object
- form.save()
- return super(PostDetailView, self).form_valid(form)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement