Django templated不显示要填充的输入
我需要在HTML模板上调用表单,用户在其中发布保存到模型的数据 代码正在运行,没有任何错误 但是html页面只显示标题和按钮 没有文本输入字段 我有一个表单,它将显示在html页面上,以便用户可以输入数据,并将数据保存到模型中。我在执行代码时没有收到任何错误,但模板不显示表单,它只显示标题和提交按钮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
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)