Как установить help_text полей пароля в пользовательской форме Джанго Аллаута? - PullRequest
0 голосов
/ 19 сентября 2019

Я бы хотел установить help_text для поля password1 в моем пользовательском RegistrationForm (с помощью ACCOUNT_SIGNUP_FORM_CLASS = 'myapp.forms.SignupForm').

В противном случае форма работает нормально, но я не могу изменить password1поле, поскольку оно создается, когда Аллах наследует от my RegistrationForm.

My SignupForm, где я добавляю флажок и настраиваю несколько простых вещей:

class SignupForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

    class Meta:
        model = Client

        fields = [
            'phone_number',
            'pin',
            'address',
            'zipcode',
            'city',
        ]

        widgets = {
            'phone_number': phone_number_widget,
        }

    agree_to_terms = forms.BooleanField(
        label=mark_safe(
            ugettext('I agree to the <a href="/terms">terms and conditions</a>')
        )
    )

    field_order = ['name'] + Meta.fields + [
        'email', 'password1', 'password2', 'agree_to_terms'
    ]

А в Аллахах account/forms.py:

class SignupForm(BaseSignupForm):
    def __init__(self, *args, **kwargs):
        super(SignupForm, self).__init__(*args, **kwargs)
        self.fields['password1'] = PasswordField(label=_("Password"))
        if app_settings.SIGNUP_PASSWORD_ENTER_TWICE:
            self.fields['password2'] = PasswordField(
                label=_("Password (again)"))

    ...
    ...

Есть ли способ обойти это?

1 Ответ

0 голосов
/ 19 сентября 2019

Ваш SignupForm должен быть подклассом аллаута SignupForm, то есть он наследует от BaseSignupForm, а не BaseSignupForm, унаследованного от вашей формы:

from allauth.account.forms import SignupForm as AllauthSignupForm
class SignupForm(ModelForm, AllauthSignupForm):
    ...

И в настройках,набор ACCOUNT_FORMS = {'signup': 'my_app.forms.SignupForm'}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...