Метод не разрешен (POST) - PullRequest
       6

Метод не разрешен (POST)

0 голосов
/ 13 декабря 2018

Я пытаюсь разрешить пользователю нажимать кнопку отправки и для этого создать еще один комментарий, но я получаю «Метод не разрешен (POST):» при нажатии на сообщение

class PostDetailView(DetailView):
model = Post
 def get_context_data(self, **kwargs):
    # post = Post.objects.filter(id = self.kwargs['pk'])
    post = get_object_or_404(Post, id=self.kwargs['pk'])
    comments = Comment.objects.filter(post=post).order_by('-id')
    is_liked = False
    if post.likes.filter(id=self.request.user.id).exists():
        is_liked = True

    context = super().get_context_data(**kwargs)

    if self.request.method == 'POST':
        comment_form = CommentForm(self.request.POST or None)
        if comment_form.is_valid():
            content = self.request.POST.get('content')
            comment = Comment.objects.create(post=post, user=self.request.user, content=content)
            comment.save()
            return HttpResponseRedirect(post.get_absolute_url())
    else:
        comment_form = CommentForm()

    context['is_liked'] = is_liked
    context['total_likes'] = post.total_likes()
    context['comments'] = comments
    context['comment_form'] = comment_form
    return context

и дляшаблон:

<form method="post">
{% csrf_token %}
{{ comment_form.as_p}}
<input type="submit" value="Submit" class="btn btn-outline-success">

1 Ответ

0 голосов
/ 13 декабря 2018

Как вы можете видеть здесь , вы не можете использовать метод POST в DetailView.Он поддерживает только get.

Если вы хотите использовать POST, вы должны использовать formview или наследовать formmixin.

...