Как удалить «No Password Set» в моем шаблоне Django для редактирования профиля - PullRequest
0 голосов
/ 14 апреля 2020

В моем шаблоне 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')

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Если вы не хотите использовать поведение пароля 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 поле не появится в форме.

0 голосов
/ 14 апреля 2020

Это текст справки поля формы

class UserChangeForm(forms.ModelForm):
    password = ReadOnlyPasswordHashField(label=_("Password"),
        help_text=_("Raw passwords are not stored, so there is no way to see "
                    "this user's password, but you can change the password "
                    "using <a href=\"password/\">this form</a>."))

Вы можете переопределить значение по умолчанию текст справки

 class Meta:
        help_texts = {
            'password ': _(''),
        }

В вашем случае это не имеет особого смысла для создания подкласса UserChangeForm вообще

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...