python - 自定义用户模型认证表单修改
问题描述
我创建了自己的用户模型,它使用电子邮件作为用户名,我决定使用自己的视图。因此,我创建了用户身份验证表单。它工作得很好,但有一个问题:它在 HTML 输出中将输入类型标记为“文本”,但我需要将其标记为“电子邮件”
我试图通过更新小部件属性来覆盖“__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="">
解决方案
推荐阅读
- flutter - 谷歌地图颤振和谷歌移动广告不能一起工作
- python - 如何针对多个岭图绘制多个子图?(海运)
- angular - 带有 rxjs 问题的 Angular 11 - TS2769:没有重载匹配此调用
- android - Android撰写自定义主题颜色 - 文本颜色未选择主题颜色
- java - 如何在 Redis 中缓存嵌套字典以供用 Python 和 Java 编写的应用程序使用
- angular - Angular 9:放置文件未触发
- java - 从文件列表创建 zip(包括路径文件夹)
- asp.net-core - ASP.NET Core 中的开发证书身份验证问题
- reactjs - 在“POST”请求中,我的 createPost Thunk 函数给出错误 {type: "post/createPost/pending", payload: undefined}
- javascript - 切换到另一个后如何更改文本输入边框颜色