Django templated不显示要填充的输入

Django templated不显示要填充的输入,django,django-forms,Django,Django Forms,我需要在HTML模板上调用表单,用户在其中发布保存到模型的数据 代码正在运行,没有任何错误 但是html页面只显示标题和按钮 没有文本输入字段 我有一个表单,它将显示在html页面上,以便用户可以输入数据,并将数据保存到模型中。我在执行代码时没有收到任何错误,但模板不显示表单,它只显示标题和提交按钮 def boqmodel1(request): form = boqform(request.POST) if form.is_valid(): obj=form.save(commit=F

我需要在HTML模板上调用表单,用户在其中发布保存到模型的数据 代码正在运行,没有任何错误 但是html页面只显示标题和按钮 没有文本输入字段

我有一个表单,它将显示在html页面上,以便用户可以输入数据,并将数据保存到模型中。我在执行代码时没有收到任何错误,但模板不显示表单,它只显示标题和提交按钮

def boqmodel1(request):
form = boqform(request.POST)
if form.is_valid():
    obj=form.save(commit=False)
    obj.save()
    context = {'form': form}
    return render(request, 'create.html', context)
else:
    context = {'error': 'The post has been successfully created. 
请输入“} 返回呈现(请求'create.html',上下文)

我的模板

<form action="" method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Create boq"/>
</form>

首先,您的第一个请求,没有提交表单就是GET。当你提交一份表格时,你会发送邮件

表单未显示,因为您的表单首先无效。您的函数应该如下所示:

def boqmodel1(request):
    context = {}

    if request.method == "GET":
        form = boqform()
        context["form"] = form

    # if you post a form do all the saving 
    if request.method == "POST":

        form = boqform(request.POST)
        context = {'form': form}
        if form.is_valid():
            obj=form.save()

            return render(request, 'create.html', context)
        else:
            context["errors"] = form.errors

    return render(request, 'create.html', context)
若方法是GET init,那个么将它传递给您的上下文,这样您就可以在前端显示它。 如果方法是POST,则使用前端(request.POST)的数据初始化表单,检查表单是否有效。如果它是有效的-保存它。如果无效,请返回错误并按您的意愿显示它们

def boqmodel1(request):
    context = {}

    if request.method == "GET":
        form = boqform()
        context["form"] = form

    # if you post a form do all the saving 
    if request.method == "POST":

        form = boqform(request.POST)
        context = {'form': form}
        if form.is_valid():
            obj=form.save()

            return render(request, 'create.html', context)
        else:
            context["errors"] = form.errors

    return render(request, 'create.html', context)