如何在Django中的ChoiceField中添加“class”? - 代码日志

如何在Django中的ChoiceField中添加“class”?

我的Django表单中有一个ChoiceField:

sex = forms.ChoiceField(label='', choices=SEX)

我想添加一个类attr到字段,所以我可以风格。像以下这样的东西通常有效:

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

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

TypeError: init() got an unexpected keyword argument ‘attrs’

为了向我的ChoiceField添加一个类,我应该使用哪个widget?

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

这些都是关于小部件的 – 这显然是他们的

Django’s representation of a HTML input element. The widget handles the rendering of the HTML

然后每个表单字段绑定到一个小部件 – 读取:

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

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

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

所以我的最后一行最后读:

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

好哇!

http://stackoverflow.com/questions/11443658/how-do-i-add-a-class-to-a-choicefield-in-django

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何在Django中的ChoiceField中添加“class”?