Пароль не меняется в файле views.py на django

Я пытаюсь изменить пароль пользователя на моем views.py и каждый раз, когда я меняю пароль, я теряю соединение и доступ к своей учетной записи

my view.py:

 user = User.objects.get(id=request.user.id) 
 user.password = make_password(request.POST.get("password")) 
 user.save()

попробуйте использовать set_password вместо make_password вот так

user = User.objects.get(id=request.user.id) 
user.password = set_password(request.POST.get("password")) 
user.save()

Ниже приведено объяснение, предоставленное документацией Django https://docs.djangoproject.com/en/3.2/topics/auth/default/#changing-passwords

У объекта User обычно есть метод .set_password(…) [Django-doc], поэтому вы можете обновить пароль с помощью:

request.user.set_password(request.POST['password'])
request.user.save()

Вы можете опустить выборку объекта пользователя, поскольку request.user уже делает это. Таким образом, использование user = User.objects.get(id=request.user.id) является дополнительным запросом, который эквивалентен только request.user.

Вернуться на верх