Я создаю систему рецензирования на django. Я думаю, что мой Html неправильный

Я создал форму и добавил ее в представление, как я должен добавить ее в html форму?

index.html

        <form action="." method="post">
    {{ form.as_p }}
    {% csrf_token %}
    <p><input type="submit" value="Add comment"></p>
</form>
      <h1 style="margin:0 57%">Reviews</h1>
    <input type="hidden" name="parent" id="contactparent" value="">
    <div class="dfv" style="display:flex; padding: 5%;   justify-content: space-around;  flex-wrap: wrap;align-items:center; box-shadow:4px 4px 16px gold;width: 80%;margin:8% 18% 0">
    <div class="form-group editContent">
     <label for="contactcomment" class="editContent"  placeholder=" Message" >
      Your reviews *
     </label>

views.py

class DishView(View):
def get(self, request):        
    if request.method == "POST":
        form = ReviewForm(request.POST)
        if form.is_valid():
            form = form.save(commit=False)
            form.name = request.name
            form.new = request.text
            form.save()
            return redirect(DishView)
    else:
        form = ReviewForm()


    return render(request, 'index.html',
                  {'Dish': dish, 'Snack': snack, 'Desserts': desserts, 'Lastcourses': lastcourses,
                   'Reviews': reviews}, )

forms.py

class ReviewForm(forms.ModelForm): captcha = ReCaptchaField()

class Meta:
    model = Reviews
    fields = ("name", "email", "text", "captcha")
    widgets = {
        "name": forms.TextInput(attrs={"class": "form-control border"}),
        "email": forms.EmailInput(attrs={"class": "form-control border"}),
        "text": forms.Textarea(attrs={"class": "form-control border"})
    }

Я добавил действие через url, но оно не сработало

Ответ на первоначальный вопрос о том, как добавить форму в HTML, заключается в том, чтобы поместить форму в контекст, который отправляется в шаблон:

{'form': form, 'Dish': dish, 'Snack': snack, 'Desserts': desserts, 'Lastcourses': lastcourses, 'Reviews': reviews}

Теперь об остальном. Вот что у меня было до того, как вы внесли все изменения в свой код. Проблема, я думаю, в том, что вы смешиваете представления на основе функций и представления на основе классов в одном представлении. Во-вторых, вы обрабатываете либо get , либо post, когда вам нужно обрабатывать оба в одном представлении.

class DishView(View):
    form_class = ReviewForm
    template_name = 'index.html'

    def get(self, request, *args, **kwargs):
        form = self.form_class()
        return render(request, self.template_name, {'form': form})

    def post(self, request, *args, **kwargs):
        form = self.form_class(request.POST)
        if form.is_valid():
            form = form.save(commit=False)
            form.name = request.name
            form.text = request.text
            form.save()
            return redirect(self.path)

        return render(request, self.template_name, {'form': form})

Я также думаю, что у вас ошибка в теге формы. Если вы хотите, чтобы форма была отправлена обратно в то же представление, то вы не используете ".". Вы можете не указывать действие:

<form method="post">
<!-- OR -->
<form action="" method="post">
Вернуться на верх