Опция widgets
предназначена для переопределения значений по умолчанию для явно объявленных полей.Чтобы добавить класс в поле, у вас есть много опций.
Опция # 1: явно объявить поле формы и добавить класс через widgets
в Meta.
class AccountEditForm(forms.ModelForm):
first_name = forms.TextField(widget=forms.TextInput())
class Meta:
model = CustomUser
fields = ('first_name', 'last_name', 'phone_number', 'date_of_birth', 'country')
widgets = {
'first_name': forms.TextInput(
attrs={
'class': 'input-bordered',
}
)
}
Опция № 2: более короткая версияопции # 1.
class AccountEditForm(forms.ModelForm):
first_name = forms.TextField(widget=forms.TextInput(attrs={'class': 'input-bordered'}))
class Meta:
model = CustomUser
...
Опция # 3: Добавить класс в метод __init__
формы.
class AccountEditForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(AccountEditForm, self).__init__(*args, **kwargs)
self.fields['first_name'].widget.attrs['class'] = 'input-bordered'
Опция # 4: Использовать плагин django-widget-tweaks.