我已经读过关于this issue的文章,但是我不能理解为什么我不能在验证过程中更改表单字段的值。
我有一个表单,用户可以在其中输入十进制值。该值必须高于用户正在更改的项的初始值。在clean()过程中,输入的值将根据项目的前一个值进行检查。当用户输入一个较低的值时,我希望能够将表单域的值重新设置为项目的初始值。
这是否可以在clean()方法中实现,还是必须在视图中执行?不知何故,在视图中这样做是不正确的。
(更复杂的是,表单的字段是动态构建的,这意味着我必须覆盖表单的clean_()方法,而不是使用clean_()方法)。
发布于 2010-05-19 02:40:02
我同意Jack M上面的评论。但是,如果要更改表单域的值,视图可能是执行此操作的最佳位置。验证方法应该只关心确定当前值是否有效。
在视图中,您已经根据绑定表单的有效性分配了流控制-是重定向到“成功”页面,还是重新显示表单。在许多情况下,您还需要预先填充表单,例如用于编辑现有参数的表单示例。添加对特定值的额外控制似乎是此功能的合理扩展。
https://stackoverflow.com/questions/2851892
复制相似问题