35

ChoiceField我的Django 表单中有一个:

gender = forms.ChoiceField(label='', choices=GENDER)

我想class attr在该字段中添加一个,以便我可以设置它的样式。像下面这样的东西通常有效:

forms.Field(label="Display name",help_text='',widget=forms.TextInput(attrs={'class': 'wideInput'}))

但这不适用于 ChoiceField,我收到以下错误:

TypeError:init()得到了一个意外的关键字参数'attrs'

widget应该使用什么来向我的 ChoiceField 添加一个类?

4

2 回答 2

72

我快速阅读了https://docs.djangoproject.com/en/1.4/ref/forms/widgets/

它对小部件很感兴趣 - 显然它们是

Django 对 HTML 输入元素的表示。小部件处理 HTML 的呈现

然后每个表单字段都绑定到一个小部件 - 阅读:

https://docs.djangoproject.com/en/1.4/ref/forms/fields/#built-in-fields

对于 ChoiceField,defaultWidget 是“Select”(如上面的链接中所述)。好的,知道正确的小部件,添加我只需要的类:

widget=forms.Select(attrs={'class':'regDropDown'})

这样我的最后一行就变成了:

gender = ChoiceField(label='', choices=SEX, widget=forms.Select(attrs={'class':'regDropDown'}))

嘘!

于 2012-07-12T00:58:59.660 回答
6

ChoiceField 使用 forms.Select 小部件

forms.Select(attrs={"name": "select_0","class": "form-control"})
于 2016-09-19T20:59:18.937 回答