не может изменить значение по умолчанию для многих виджетах в форме django
0 Atma [2016-12-18 08:20:00]
Привет, у меня есть много разных полей:
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. Что я делаю неправильно?
django django-forms
1 ответ
1 Решение Messaoud Zahi [2016-12-18 11:44:00]
Чтобы указать пользовательский виджет для поля, используйте атрибут widgets внутреннего класса Meta. Это должно быть имена полей сопоставления словаря для классов или экземпляров виджетов.
class SeekingForm(forms.ModelForm):
class Meta:
model = Seeking
widgets = {'company_type': forms.CheckboxSelectMultiple() }
exclude = (
'entity',
)