基本上,我想在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',
)
现在,如果您想添加一些已定义的选项,请点击此链接了解更多详细信息。
这里的医生也很好读。
注意:您不必为此覆盖__init__
方法。