2013-08-30 112 views
8

我有一個Django的形式和我的看法功能我這樣做:改變形式值

search_packages_form = SearchPackagesForm(data = request.POST) 

我想改寫它decleared作爲這樣的表單字段叫價:

price = forms.ChoiceField(choices = PRICE_CHOICES, required = False,widget = forms.RadioSelect) 

我想打電話search_packages_form.is_valid()之前覆蓋表單字段

我想這樣做的:

search_packages_form.data['price'] = NEW_PRICE 

但它不起作用。有任何想法嗎 ?

回答

-1

form.is_valid()貫穿窗體(和模型在ModelForm的情況下)clean方法的,返回TrueFalse

如果您打算改變表單數據,你可以在一般的清潔方法中或在實地去做,例如

class YourForm(DerivingClass): 
    # regular stuff 

    def clean_<ATTR>(self): 
     # here 
     return self.cleaned_data 

    def clean(self): 
     # or here 
     return super(YourForm, self).clean() 
+3

不適合我。我不能這樣做。它必須在驗證之前運行,並且不能在clean函數中發生。我基本上想要改變來自用戶的數據。 –

+0

我認爲你需要用javascript來做到這一點。無論是'.change'還是'.keyup' –