python - 如何在我的 Django 模板上删除“未设置密码”以编辑个人资料
问题描述
在我的 Django 模板上,当用户登录并编辑配置文件时,我收到一条看起来很奇怪的消息,内容为“未设置密码。未存储原始密码,因此无法查看此用户的密码,但您可以更改密码使用这个表格。”
如何防止它显示在我的模板上?
下面是我的代码
forms.py
class EditProfileForm(UserChangeForm):
member_id = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Member Id'}))
first_name = forms.CharField(label='Firstname', required=False, widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Firstname'}))
last_name = forms.CharField(label='Lastname', required=False, widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Lastname'}))
email = forms.CharField(label='Email*', widget=forms.EmailInput(attrs={'class':'form-control', 'placeholder':'Email'}))
phone1 = forms.CharField(label='Phone Number 1*', widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Phone Number 1'}))
phone2 = forms.CharField(label='Phone Number 2', required=False, widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Phone Number 2'}))
class Meta():
model = User
fields = ('member_id', 'first_name', 'last_name', 'email', 'phone1', 'phone2')
解决方案
如果您不想使用 的密码行为UserChangeForm
,那么我将forms.ModelForm
改为子类。如果您查看代码,UserChangeForm
它实际上并没有做任何其他事情。
class EditProfileForm(forms.ModelForm):
member_id = forms.CharField(widget=forms.TextInput(attrs={'class':'form-control', 'placeholder':'Member Id'}))
...
class Meta():
model = User
fields = ('member_id', 'first_name', 'last_name', 'email', 'phone1', 'phone2')
重要的是您明确设置fields
,因此该password
字段不会出现在表单中。
推荐阅读
- c# - 在 C# 中使用“浮动”结构解析 XML 并填充列表框
- c++ - 拓扑排序中的邻接表表示
- codenameone - 将 PropertyBusinessObjects 列表保存到存储中
- javascript - 如何在电子 renderer.js 文件中使用 Node.js 解析 JSON?
- opencsv - 使用 OpenCSV,如何使用 MappingStrategy 附加到现有 CSV?
- reactjs - 反应原生,在现有状态转换期间无法更新
- ios - 通过协议传递自我会导致内存泄漏吗?
- java - 被这个学校的编程问题困住了
- android - Chrome 检查 android 模拟器不起作用
- android - Angular Material Icon 不在带有 Cordova 的 Android 应用程序中居中