在验证期间设置表单字段的值

时间:2010-05-17 18:57:28

标签: django validation forms

我已经阅读了this issue,但我无法理解为什么在验证过程中无法更改表单字段的值。

我有一个用户可以输入小数值的表单。该值必须高于用户正在更改的项目的初始值。在clean()期间,将根据项目的先前值检查输入的值。我希望能够在用户输入较低值时将表单字段的值重新设置为项目的初始值。

这可能来自clean()方法,还是我被迫在视图中执行此操作?不知何故,在视图中这样做是不对的...

(为了使问题更复杂,表单的字段是动态构建的,这意味着我必须覆盖表单的clean()方法而不是使用clean_()方法。)

1 个答案:

答案 0 :(得分:1)

我同意Jack M上面的评论。但是,如果要更改表单字段的值,则视图可能是最佳位置。验证方法只应与确定当前值是否有效有关。

在视图中,您已根据绑定表单的有效性分配流控制 - 是否重定向到“成功”页面,或重新显示表单。在许多情况下,您还预先填充表单,如用于编辑现有参数的表单示例。这个功能的逻辑扩展似乎是对特定值添加额外控制。