首页 > 解决方案 > 如何在我的 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')

标签: pythondjango

解决方案


如果您不想使用 的密码行为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字段不会出现在表单中。


推荐阅读