【发布时间】:2014-02-01 16:47:49
【问题描述】:
我有一个表单,如果出现表单验证错误,我希望数据仍然存在于表单字段中。默认情况下,当我尝试以表单 django 提交数据时会清除所有字段。使用 django 1.6 执行此操作的最佳方法是什么?
我以为我会像这样获取数据:request.POST['field'],将其发送到模板,然后让模板运行条件 if 语句,因为我从 django 收到一个错误,告诉我这些值不是在 multidict 中找到但是当我填写表单字段时发现它似乎不起作用。我还尝试检查该值是否直接存在于视图中,但我最终得到了大量可笑的 if 语句才能做到这一点,这只是一个丑陋的 hack。
有人可以为此提出一个好的工作解决方案吗?我似乎在 SO 上遇到了同样的问题,但人们只是写道,保留数据应该是默认设置,但 django 1.6 似乎并非如此。
【问题讨论】:
-
您使用的是基于类还是基于函数的视图?
-
using a form in a view 上的文档准确显示了要做什么,这在 1.6 中没有改变。
-
此时我仍在使用基于函数的视图。我阅读了 daniel 文档,但我看不出它是如何解决我的特定问题的。它说的是如何处理表单,而不是如果表单没有验证如何保持已经输入的数据。我这样做了,如果我没有绑定表单没有发布数据并绑定它(如果有),并运行 form.is_valid ,但如果 form.is_valid 失败,则所有字段都被清除..也许我错过了一些东西,但我不止一次读过