自定义用户模型身份验证表单修改

时间:2019-04-01 16:12:40

标签: python django

我创建了自己的用户模型,该模型使用电子邮件作为用户名,因此我决定使用自己的视图。因此,我创建了用于用户身份验证的表单。效果很好,但是有一个问题:在HTML输出中将 input 类型标记为“文本” ,但是我需要将其标记为“电子邮件”

我试图通过更新窗口小部件属性来覆盖“ __ init __” 函数,但它仅适用于“占位符”,“ 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="">

0 个答案:

没有答案