Как переопределить help_text и метку для формы пароля в django - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть следующая форма в моем forms.py. По какой-то причине переопределение метки и help_text для username поля WORKS и (обоих) полей пароля отсутствует.

class CreateUserForm(UserCreationForm):
    class Meta:
        model = User
        fields = ['username', 'password1', 'password2']
        labels = {
            'username': 'My Username Label',
            'password1': 'My Password1 Label',
            'password2': 'My Password2 Label',
        }
        help_texts = {
            'username': 'My username help_text',
            'password1': 'My password1 help_text',
        }

При отображении по умолчанию django label / help_texts показаны для полей пароля:

Your password can’t be too similar to your other personal information.
Your password must contain at least 8 characters.
...

Я уже прочитал эти ответы, но они не помогли: Q1 Q2 Q3

Я также прочитал документы, и есть примечание здесь (зеленая заметка, опускающая страницу), которое, кажется, связано, но я действительно не понимаю этого. Здесь упоминаются поля, определенные декларативно, чего я не делаю. Также не объяснил бы, почему это работает для username, а не для password1.

1 Ответ

1 голос
/ 19 апреля 2020

Переопределить метод __init__(...) класса формы,

class CreateUserForm(UserCreationForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        <b>self.fields['password1'].label = 'password1 label'
        self.fields['password2'].label = 'password2 label'

        self.fields['password1'].help_text = 'password1 help_text'
        self.fields['password2'].help_text = 'password2 help_text'</b>
...