Python 在django中保留键入的表单数据

Python 在django中保留键入的表单数据,python,django,forms,Python,Django,Forms,我有一个表单,如果存在表单验证错误,我希望数据仍然存在于表单字段中。默认情况下,当我尝试以django的形式提交数据时,会清除所有字段。使用django 1.6实现这一点的最佳方法是什么 我想我应该像这样获取数据:request.POST['field'],将其发送到模板,然后让模板运行一个条件if语句,因为我从django那里得到一个错误,告诉我在multidict中找不到值,但在我填写表单字段时找到了值,所以这似乎不起作用。我还试图检查该值是否直接出现在视图中,但我最终得到了大量的if语句,

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

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


有人能提出一个很好的解决方案吗?我似乎遇到了同样的问题,但人们只是写道,保留数据应该是默认的,但django 1.6似乎不是这样。

我想象了你的表单类
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>
def myview(请求):
if request.method==“POST”:
form=MyForm(request.POST)
如果form.is_有效():
form.save()
返回呈现(请求“success.html”)
其他:
form=MyForm()
返回呈现(请求'form.html',{'form':form})
{{form}}

您使用的是基于类的视图还是基于函数的视图?上的文档准确地显示了要执行的操作,这在1.6中没有更改。目前,我仍然使用基于函数的视图。我读了daniel的文档,我看不出它是如何解决我的特殊问题的。它说的是如何处理表单,而不是在表单无法验证时如何保存已经键入的数据。。我做到了,如果没有post数据,我就不绑定表单,如果有,我就绑定表单,运行form.is\u valid,但是如果form.is\u valid失败,那么所有字段都会被清除。。也许我遗漏了什么,但我不止一次地读到你在这里不必要地实例化了两次表单,并且没有成功地重定向出去。@DanielRoseman谢谢你的更正我编辑了我的答案。这基本上就是我所做的,但是如果表单没有验证,它会清除表单字段。我现在看到你正在使用{form},嗯,我不喜欢这样做,因为我喜欢风格的领域和有完全的控制,也许这就是为什么它不工作。。