django - 如何将 "class"添加到 Django 中的 ChoiceField?

标签 django

我的 Django 表单中有一个 ChoiceField:

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

我想向该字段添加一个 class attr 以便我可以设置其样式。类似以下内容通常有效:

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

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

TypeError: init() got an unexpected keyword argument 'attrs'

我应该使用什么小部件才能将类添加到我的 ChoiceField?

最佳答案

我快速阅读了 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

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

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'}))

万岁!

关于django - 如何将 "class"添加到 Django 中的 ChoiceField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11443658/

相关文章:

python - 如何在 django rest 框架中反转 ViewSet 自定义操作的 URL

django - 如何限制表单集中的字段选择?

python - 每次调用 authenticate() 后用户密码都会改变

python混淆: dict. pop

python - 如何在 Django 后台定期重复一个函数直到成功?

python - Django 中的页面未找到(404)错误

django - 使用 Django 表单向导为登录页面实现安全的双因素身份验证

python - Django - 创建关联对象的字典

python - 如何在 Django 模板中使用函数 returnig 字典?

python - 模板 - 菜单