2014-03-13 80 views
0

我有一個包含RadioSelect字段的窗體。我無法在init()方法(< 3>/< 4>)和/或創建RadioSelect表單元素(< 2>)中禁用此字段。這種形式有一個子類,但它不使用有問題的radioButton字段。我一直在努力確定過去4個小時的問題是否可用。我可能錯過了什麼?無法使用Django中的Forms類禁用RadioSelect小部件

下面是代碼的片段,我使用:

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

'self.fields [「radioButton」]。widget.attrs = {'disabled':'disabled'}' – karthikr

+0

這不行。 – FearlessFuture

+0

@karthikr,還有其他建議嗎?你知道爲什麼設置attrs詞典不起作用嗎? – FearlessFuture

回答

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腳本正在刪除RadioSelect字段的「disabled」屬性。

相關問題