如何在Django中向ChoiceField添加"类"?

bha*_*ral 25 django

我有一个ChoiceField我的Django表格:

gender = forms.ChoiceField(label='', choices=GENDER)
Run Code Online (Sandbox Code Playgroud)

我想添加一个class attr字段,以便我可以设计它.像下面这样的东西通常有效:

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

但是这对ChoiceField不起作用,我得到以下错误:

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

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

bha*_*ral 50

我快速阅读了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'})
Run Code Online (Sandbox Code Playgroud)

所以我的最后一行结束了:

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

好哇!


小智 5

ChoiceField使用表单。选择小部件

forms.Select(attrs={"name": "select_0","class": "form-control"})
Run Code Online (Sandbox Code Playgroud)