2016-12-18 21 views
0

您好我有一個多對多的領域:不能在Django的形式默認許多改變許多插件

class Seeking(models.Model): 
    entity = models.OneToOneField(Entity) 
    company_type = models.ManyToManyField(CompanyTypeChoice) 

我有這種形式的使用領域:

class SeekingForm(forms.ModelForm): 

    class Meta: 
     model = Seeking 
     widgets = {'m2m_field': forms.CheckboxSelectMultiple} 
     exclude = (
        'entity', 
       ) 

    def __init__(self, *args, **kwargs): 

     super(SeekingForm, self).__init__(*args, **kwargs) 
     self.fields["company_type"].widget = forms.CheckboxSelectMultiple() 

小部件仍然呈現作爲多選框。我正在使用django 10.我做錯了什麼?

回答

1

要爲字段指定自定義小部件,請使用內部Meta類的小部件屬性。這應該是一個字典映射字段名稱小部件類或實例。

class SeekingForm(forms.ModelForm): 

    class Meta: 
     model = Seeking 
     widgets = {'company_type': forms.CheckboxSelectMultiple() } 
     exclude = (
       'entity', 
      )