我创建了表单并将其添加到查看,我必须如何将其添加到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 AddReview(View):
"""Отзывы"""
def post(self, request,pk):
    form = ReviewForm(request.POST,)
    if form.is_valid():
        form = form.save(commit=False)
        #form.Dish = Dish
        form.save()
    review = Reviews.objects.all()
    return render(request,'Index.html',{'Reviews':review})

Forms.py

class ReviewForm(ModelForm):
class Meta:
    model =  Reviews
    fields = ('name', 'email', 'text')

Urls.py path("review/<int:pk>/", AddReview.as_view(), name='add_review'), 找不到请求.请求URL:http://127.0.0.1:8000/%7Burl%20'add_review'%20dish.id%7D

在此处输入代码

在此处输入代码

推荐答案

关于如何将表单添加到HTML的原始问题的答案是将表单放入发送到模板的上下文中:

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

现在是剩下的部分了.以下是在您对代码进行所有更改之前我所拥有的内容.我认为问题在于,您在同一视图中混合了基于函数的视图和基于类的视图.其次,当您需要在同一个视图中处理两者时,您正在处理Get or帖子中的任何一个.

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">

Html相关问答推荐

CSS/添加margin—top到嵌入式facebook帖子

HTML5章节或文章

浏览器是在调整大小还是在全屏上交换视频源?

如何通过扭曲元素来倾斜元素?

创建带有弯曲边框的水平时间线

背景可点击,而不是文本

我怎样才能有一个div,在其中放置一个消息,打破和不go 的div?

将导航项目底部边框与导航栏对齐

一切停止工作后,添加不透明度(在tailwind )

如何制作带有粘性头和脚的可滚动车身

如何使用css创建六边形棋盘?

rmarkdown HTML数字不适用于针织衫_1.44

为什么带有截断的 contentedible div 在受约束时会在 Chrome 中添加空格

伪元素:after和溢出隐藏

pull-right 不适用于 bootstrap alert 内的按钮

CSS:第一个类型的伪类没有按预期工作

导航丸被选中(活动),但内容未显示.怎么会?

单击按钮时更改字体真棒图标

如何在 blazor 中单击单个按钮调用 2 个等待任务

如何使用 html 和 css 为卡片创建此背景框架