Пароль не меняется в файле 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
.