【问题标题】:How do I add a "class" to a ChoiceField in Django?如何在 Django 中向 ChoiceField 添加“类”?
【发布时间】:2012-07-11 17:17:44
【问题描述】:

我的 Django 表单中有一个ChoiceField

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

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

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

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

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

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

【问题讨论】:

    标签: django


    【解决方案1】:

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

    嘘!

    【讨论】:

    • 一段时间后你应该能够接受自己的答案
    【解决方案2】:

    ChoiceField 使用 forms.Select 小部件

    forms.Select(attrs={"name": "select_0","class": "form-control"})
    

    【讨论】:

      猜你喜欢
      • 2012-08-04
      • 2013-07-18
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      相关资源
      最近更新 更多