2011-09-01 3 views
1

J'ai un formulaire dans lequel je génère par programmation les champs à l'exécution. Dans la méthode propre à l'intérieur de mon formulaire, quand j'imprime nettoyé_data je n'obtiens rien. Est-il possible d'accéder aux données du champ généré lors de l'exécution?django 1.3 valider un champ de formulaire créé par programme

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

La ligne de méthode de nettoyage de la classe parente ne devrait-elle pas être? 'super (SelectList_Form, self) .clean()' –

+0

merci @madhusdan, vous avez économisé mon temps. J'allais dans les cercles et je ne sais pas pourquoi je n'ai jamais remarqué ça. Merci beaucoup –

Répondre

1

mudhusudan a attiré mon attention sur le fait que je manqué de placer méthode propre dans l'appel super. Le code ci-dessous est le correctif

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')) 
Questions connexes