2010-05-17 62 views
0

我已經閱讀了關於this issue的信息,但我無法理解爲什麼我無法在驗證過程中更改表單字段的值。在驗證過程中設置表單字段的值

我有一個窗體,用戶可以輸入一個十進制值。該值必須高於用戶正在改變的項目的初始值。在clean()期間,輸入的值將與該項目的先前值進行比較。我希望能夠在用戶輸入較低值時將表單域的值重新設置爲該項目的初始值。

這是可能的內部乾淨()方法,或者我被迫在視圖中做到這一點?不知何故,它不覺得在視圖中這樣做...

(更復雜的是,窗體的字段是動態構建的,這意味着我必須重寫窗體的clean()方法而不是使用clean_()方法)。

+1

從用戶界面的角度來看,我會偏離改變用戶輸入的值。我認爲最好將表單中的前一個值保留,但將該字段標記爲錯誤。通過這種方式,當用戶看到他們輸入的內容不正確時,他們並沒有想到「嘿,我沒有輸入」。 – 2010-05-17 19:58:44

回答

1

我同意Jack M的評論。但是,如果您要更改表單字段的值,該視圖可能是最好的選擇。驗證方法應該只關心確定當前值是否有效。

在視圖中,您已經根據綁定表單的有效性分配流控制 - 是否重定向到「成功」頁面,或重新顯示錶單。在許多情況下,您還可以預先填充表單,如用於編輯現有參數的表單示例。這似乎是該功能的一個合理擴展,可以對特定值添加額外控制。

+0

感謝所有這些富有洞察力的評論! – LaundroMat 2010-05-19 11:55:49