覆盖 Django ChoiceField 中的 class 属性 / select
Overriding class attribute in Django ChoiceField / select
我想将 class="form-control"
(Bootstrap 3) 添加到我的自定义 Django 表单中。
我的字段需要在我的模板中呈现如下(只是为了表明我没有使用 {{form}}
:
{% for field in form.visible_fields %}
{{ field }}
{% endfor %}
我意识到 Meta
class 应该用来覆盖 widgets
,例如TextField
:
class Meta:
...
widgets = {
'info': forms.TextInput(attrs={'class': 'form-control'}),
}
这有效,但我的表单元素之一是 <select>
字段。
我尝试了以下方法,但没有成功。与以下:
widgets = {
'tags': forms.ChoiceField(attrs={'class': 'form-control'}),
}
我得到:
__init__() got an unexpected keyword argument 'attrs'
您可以简单地使用 forms.Select()
:
widgets = {
'tags': forms.Select(attrs={'class': 'form-control'}),
'info': forms.TextInput(attrs={'class': 'form-control'}),
}
我想将 class="form-control"
(Bootstrap 3) 添加到我的自定义 Django 表单中。
我的字段需要在我的模板中呈现如下(只是为了表明我没有使用 {{form}}
:
{% for field in form.visible_fields %}
{{ field }}
{% endfor %}
我意识到 Meta
class 应该用来覆盖 widgets
,例如TextField
:
class Meta:
...
widgets = {
'info': forms.TextInput(attrs={'class': 'form-control'}),
}
这有效,但我的表单元素之一是 <select>
字段。
我尝试了以下方法,但没有成功。与以下:
widgets = {
'tags': forms.ChoiceField(attrs={'class': 'form-control'}),
}
我得到:
__init__() got an unexpected keyword argument 'attrs'
您可以简单地使用 forms.Select()
:
widgets = {
'tags': forms.Select(attrs={'class': 'form-control'}),
'info': forms.TextInput(attrs={'class': 'form-control'}),
}