Как настроить размер help_texts в форме Django?
Я пытаюсь настроить размер поля help_texts для 'username'. Я не понимаю, где следует применить стилизацию.
class SignUpForm(UserCreationForm):
password1 = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control', 'placeholder':'Password'}), label='')
password2 = forms.CharField(widget=forms.PasswordInput(attrs={'class':'form-control', 'placeholder':'Confirm Password'}), label='')
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2', 'phone']
widgets = {
'username': forms.TextInput(attrs={'class':'form-control', 'placeholder':'Username'}),
'email': forms.EmailInput(attrs={'class':'form-control', 'placeholder':'Email Address'}),
'phone': forms.TextInput(attrs={'class':'form-control', 'placeholder':'Phone Number'}),
}
labels = {
'username': '',
'email': '',
'phone': ''
}
help_texts = {
"username": "Must contain only letters, numbers, hyphens and underscores.",
}
Вы можете перезаписать help_text
. Я использовал mark_safe
для отображения строки в виде html
from django.utils.safestring import mark_safe
class SignUpForm(UserCreationForm):
...
...
def __init__(self, *args, **kwargs):
super(SignUpForm, self).__init__(*args, **kwargs)
self.fields['username'].help_text = mark_safe(
'<span style="color: red; font-size: 12px;">'
f'{self.fields["username"].help_text}</span>'
)
Вы должны сделать это в методе init. Я приведу пример для поля, но вы можете изменить все, что угодно, например, так.
class SignUpForm(UserCreationForm):
def __init__(self, *args, **kwargs):
super(UserCreationForm, self).__init__(*args, **kwargs)
self.fields['username'].widget = forms.TextInput(
attrs={
'placeholder': 'Bla Bla',
'style': 'height:100px;',
'class': 'form-class',
}
)