无法在Django中使用Forms类禁用RadioSelect小部件

时间:2014-03-13 20:55:38

标签: django django-forms radio-button

我有一个包含RadioSelect字段的表单。我无法在init()方法(< 1> /< 3> /< 4>)和/或创建RadioSelect表单元素(< 2>)中以此形式禁用此字段。 )。此表单有一个子类,但它不使用相关的radioButton字段。我一直在努力确定过去4个小时的问题是不可用的。我可以错过什么?

以下是我正在使用的代码片段:

class ExampleForm (ParentForm1, ParentForm2, ParentForm3):

def __init__(self,*args, **kwargs):
    super(ExampleForm, self).__init__(*args, **kwargs)

    #<1>
    self.fields['radioButton'].widget.attrs['disabled'] = 'disabled'
    #<3>
    #self.fields["radioButton"].widget.attrs['disabled'] = True
    #<4>
    #self.fields['radioButton'].widget.attrs.update({'disabled':'disabled', 'readonly':'readonly'})
#<2>
radioButton = forms.ChoiceField(label=_("Gender"),
                                               initial='M',
                                               required=False,
                                               choices=GENDER_LIST,
                                               widget=forms.RadioSelect(attrs={"disabled":"disabled"}))

我正在使用Django 1.4。

1 个答案:

答案 0 :(得分:2)

#<1>
    self.fields['radioButton'].widget.attrs['disabled'] = 'disabled'
#<2>
    self.fields["radioButton"].widget.attrs['disabled'] = True
#<3>
    self.fields["radioButton"].widget.attrs = {'disabled':'disabled'}

以上方法可用于禁用RadioSelect字段。事实证明,JavaScript脚本正在删除&#34;禁用&#34; RadioSelect字段的属性。