django 1.3验证以编程方式创建的表单字段

时间:2011-09-01 14:47:32

标签: python django

我有一个表单,我可以在运行时以编程方式生成字段。在我的表单内的clean方法中,当我打印cleaning_data时我什么都没得到。是否可以访问在运行时生成的字段的数据?

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 个答案:

答案 0 :(得分: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'))