如何在django的init中向表单字段添加小部件



基本上,我想在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__方法。

最新更新