保持在django中键入表单数据

时间:2014-02-01 16:47:50

标签: python django forms

如果存在表单验证错误,我有一个表单,我希望数据仍然存在于表单字段中。默认情况下,当我尝试以表格形式提交数据时,django会清除所有字段。使用django 1.6执行此操作的最佳方法是什么?

我以为我会像这样获取数据:request.POST ['field'],将其发送到模板然后让模板运行条件if语句,我从django获取错误告诉我值不是在multidict中找到但是当我填写表单字段时发现它似乎不起作用。我还试图检查该值是否直接出现在视图中,但我最终得到了一些可以做到这一点的if语句,这只是一个丑陋的黑客。

有人可以建议一个良好的解决方案吗?我似乎在SO上遇到了同样的问题,但人们只是写道它应该是保留数据的默认设置,但似乎不是django 1.6的情况。

1 个答案:

答案 0 :(得分:-1)

我想象了你的表单类MyForm()。如果表单无效,请将form = MyForm(request.POST)发送给模板。

一些观点:

def myview(request):

   if request.method=='POST':
      form = MyForm(request.POST)
      if form.is_valid():
         form.save()
         return render(request, 'success.html')
   else:
      form = MyForm()
   return render(request, 'form.html',{'form':form})

<form action="." method="POST">
{{form}}
</form>