2012-10-04 82 views
0

在Django表單POST方法中,我想根據is_valid()結果更改字段值。因此,我不能更改clean_*方法中的值,因爲is_valid()不會被計算(也不可訪問)。用Django表單驗證表單後字段的值更改

基本上,我需要根據is_valid()結果根據一個值(下例中的is_cool)顯示HTML的顯示方式。如果需要,則此值需要由用戶界面進行更改。在模板中我有類似的東西:

{% if record.is_cool %} something {% endif %} 

這是否可能或應該改變模式?

回答

0

UI必須正確更新字段值,就像現在已經在做的那樣。

Django中的視圖可以通過條件is_cool而不影響表單並通過傳遞給render函數的字典將其傳遞給模板。

查看代碼片段:那麼

return render(request, self.template_name, { 
    'record': form, 
    'is_cool': True, 
}) 

模板的代碼會更改爲類似:

{% if is_cool %} something {% endif %} 

注意,在模板is_coolrecord.is_cool變量是不同的。