2011-09-01 96 views
1

我有一個窗體,其中我編程生成運行時的字段。在我的表單裏面乾淨的方法,當我打印的清潔數據我什麼都沒有。是否可以訪問運行時生成的字段的數據?django 1.3驗證編程創建的表單字段

wizard.py

 for i in lobj: 
      form.fields['list[%s]' % i.id] = forms.CharField(label=i.title, widget=forms.CheckboxInput) 

forms.py

class SelectList_Form(forms.Form): 

    param = forms.CharField(widget=forms.HiddenInput, required=False) 

    def clean(self): 
     super(SelectList_Form, self) 
     cleaned_data = self.cleaned_data 
     try: 

      print cleaned_data 
      if cleaned_data['1-list[]']: 
       print cleaned_data['1-list[]'] 


     except Exception, e: 
      raise forms.ValidationError(_('Must select at least one of the lists below')) 
+1

不應該調用父類clean方法行嗎? '超(SelectList_Form,self).clean()' –

+0

感謝@madhusdan,你節省了我的時間。我正在進入圈子,我不知道我從來沒有注意到這一點。非常感謝你 –

回答

1

mudhusudan帶來了我的注意,我錯過了一處乾淨的方法在超級調用的事實。下面的代碼是修復程序

class SelectList_Form(forms.Form): 

    param = forms.CharField(widget=forms.HiddenInput, required=False) 

    def clean(self): 
     super(SelectList_Form, self).clean() 
     cleaned_data = self.cleaned_data 
     try: 

      print cleaned_data 
      if cleaned_data['1-list[]']: 
       print cleaned_data['1-list[]'] 


     except Exception, e: 
      raise forms.ValidationError(_('Must select at least one of the lists below'))