Модификация формы для пользовательской модели пользователя - PullRequest
2 голосов
/ 01 апреля 2019

Я создал собственную модель пользователя, в которой в качестве имени пользователя используется электронная почта, и я решил использовать для нее собственные представления. Поэтому я создал форму для аутентификации пользователя. Он работает хорошо, но есть одна проблема: он помечает input type как "text" в выводе HTML, но мне нужно пометить его как "email"

Я пытался переопределить "__ init __" функцию с обновлением атрибутов виджета, но она работает только с "placeholder", "id" и другими тегами, Изменение имени пользователя также не сработало

class CustomUserAuthForm(AuthenticationForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['username'].widget.attrs.update({'type': 'email', 'placeholder': 'e-mail'})
        self.fields['password'].widget.attrs['placeholder'] = 'password'
self.username = forms.EmailField(widget=forms.EmailInput(attrs={'autofocus': True, 'type': 'email', 'placeholder': 'e-mail'}))

Я хочу получить:

<input type="email" name="username" autofocus="" placeholder="e-mail" required="">

Но я получаю:

<input type="text" name="username" autofocus="" placeholder="e-mail" required="">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...