Django Раздел комментариев на основе классов
Благословения,
У меня есть страница, на которой отображается DetailView
и я хотел бы добавить возможность комментировать на той же странице без перенаправления на /add-comment
url
Я попробовал все из этого руководства и комментарии все еще не работают. (комментарии не отображаются и не публикуются при отправке)
models.py
class Comment(models.Model):
name = models.ForeignKey(User, on_delete=models.CASCADE, default=None)
email = models.EmailField(max_length=100)
content = models.TextField()
post = models.ForeignKey(Movie, on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ('-created',)
def __str__(self):
return 'Comment by {}'.format(self.name)
views.py
class MovieDetail(DetailView):
model = Movie
def render_to_response(self, *args, **kwargs):
self.object.refresh_from_db()
self.object.views_count += 1
self.object.save()
return super().render_to_response(*args, **kwargs)
def get_context_data(self, **kwargs):
context = super(MovieDetail, self).get_context_data(**kwargs)
context['links'] = MovieLink.objects.filter(movie=self.get_object())
context['related_movies'] = Movie.objects.filter(category=self.get_object().category)
return context
def post(self, request, *args, **kwargs):
form = CommentForm(request.POST)
self.object = self.get_object()
context = super().get_context_data(**kwargs)
post = Movie.objects.filter(slug=self.kwargs['slug'])[0]
comments = post.comment_set.all()
context['post'] = post
context['comments'] = comments
context['form'] = form
if form.is_valid():
name = form.cleaned_data['name']
email = form.cleaned_data['email']
content = form.cleaned_data['content']
comment = Comment.objects.create(
name=name, email=email, content=content, post=post
)
form = CommentForm()
context['form'] = form
return self.render_to_response(context=context)
return self.render_to_response(context=context)