Как настроить размер 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',

        }
    )
Вернуться на верх