Я создал собственную модель пользователя, в которой в качестве имени пользователя используется электронная почта, и я решил использовать для нее собственные представления. Поэтому я создал форму для аутентификации пользователя. Он работает хорошо, но есть одна проблема: он помечает 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="">