Как добавить виджет в поле формы в init в django?
В принципе, я хочу изменить виджет поля формы в функции init. Прежде всего, вот форма:
class ModelForm(forms.ModelForm):
date = forms.ChoiceField()
def __init__(self, *args, **kwargs):
super(ModelForm, self).__init__(*args, **kwargs)
self.fields['date'].choices = DATE_CHOICES
class Meta:
model = Model
fields = (
'date',
)
widgets = {'date': SelectDateWidget()}
Однако виджет SelectDateWidget()
по какой-то причине не работает. Поэтому я хочу вместо этого добавить этот виджет в функцию init, чтобы виджет отражался на форме. Однако это только моя мысль. Если добавление этого виджета в функцию init не сработает, не могли бы вы подсказать мне способ использования этого виджета для поля date
? Спасибо, и пожалуйста, оставляйте мне любые вопросы, которые у вас есть.
Если предположить, что дата является DateField
, то можно добавить SelectDateWidget
следующим образом :
class ModelForm(forms.ModelForm):
date = forms.DateField(widget=forms.SelectDateWidget(empty_label=("Choose Year", "Choose Month", "Choose Day"),))
class Meta:
model = Model
fields = (
'date',
)
Теперь, если вы хотите добавить некоторые определенные варианты, перейдите по этой ссылке для получения более подробной информации.
Документ здесь также полезно прочитать.
NB : Вам не нужно переопределять метод__init__
для этого.