Form.is_valid() всегда возвращает False и форма не действительна

У меня есть простая форма для добавления комментариев и во views я проверяю ее на валидность. Но она всегда возвращает False и я получаю ошибку 404 в соответствии с моим кодом. У меня есть несколько предположений, но они не сработали. И теперь я понятия не имею, как найти причину. views.py:

class ProductDetailView(DetailView):
    model = Product
    template_name = "core/product.html"
    context_object_name = "product"
    ....

    def post(self, request, *args, **kwargs):
        if request.POST.get("product_detail_form") == 'add_comment_form_two':
            if self.request.user.is_authenticated:
                form = CommentForm(request.POST)
                if form.is_valid():
                    comment = Review(review=request.POST.get("review"),
                                     rating=request.POST.get("rating"),
                                     author=self.request.user,
                                     product_connected=self.get_object())

                    comment.save()
                    print("success ")
                    return redirect("product_detail", *args, **kwargs)
                else:
                    print("error")
                    raise Http404    
                    ....

html форма

<form action="" method="post">
    {% csrf_token %}
    {{ comment_form.as_p }}
    <input type="submit" name="product_detail_form" 
           value="add_comment_form_two">add comment</input>
</form>

forms.py

class CommentForm(forms.ModelForm):
    review = forms.CharField(
        required=True,
        widget=forms.TextInput(
            attrs={"class": "comment_form", "placeholder": "Comment"}), label=""
    )
    OPTIONS = (
        ("1", "1"),
        ("2", "2"),
        ("3", "3"),
        ("4", "4"),
        ("5", "5"),
    )
    rating = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,
                                       choices=OPTIONS)
    class Meta:
        model = Review
        fields = ["review", "rating"]

модель

class Review(models.Model):
    review = models.TextField(max_length=500)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    product_connected = models.ForeignKey(Product, on_delete=models.CASCADE, 
                                         related_name="reviews")
    creation_date = models.DateTimeField(auto_now_add=True)
    last_update_time = models.DateTimeField(auto_now=True)
    rating = models.IntegerField(default=0, validators=[MinValueValidator(0), 
                                 MaxValueValidator(5)]) 

Спасибо за любую помощь, я просто не могу понять это уже долгое время.

Дурацкое правило, что я должен написать меньше кода, чем вопрос, потому что мой вопрос состоит из двух предложений

Вернуться на верх