2015-04-28 2 views
0

Я хотел бы добавить class="form-control" (Bootstrap 3) в мою обычную форму Django.Переопределение атрибута класса в Django ChoiceField/select

Мои поля должны быть отображены следующим образом в моем шаблоне (просто чтобы показать, что я не использую {{form}}:

{% for field in form.visible_fields %} 
    {{ field }} 
{% endfor %} 

Я понимаю, что Meta класс должен использоваться для переопределения 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'

+0

Вы проверили [Джанго-bootstrap3] (HTTPS: //github.com/dyve/django-bootstrap3), который позволяет отображать формы Django с помощью классов Boostrap? – aumo

+0

ChoiceField - это поле, а не виджет. –

ответ

0

Вы можете просто использовать forms.Select():

widgets = { 
    'tags': forms.Select(attrs={'class': 'form-control'}), 
    'info': forms.TextInput(attrs={'class': 'form-control'}), 
} 
Смежные вопросы