This is the story of Django == 2.2.12. After changing the user password from the self-made screen while logged in
・ When I try to move to another page, I first jump to the login screen. -A request to a server that is normally fine returns an error
You wondered about the situation!
Actually, if you are using a custom password change screen, you will be forced to log out after changing the password. The cause is that the session you were using is no longer used.
If you're using something like PasswordChangeView
from Django, it will automatically create a new session after you change your password, so you'll stay logged in.
I want to do that on the custom screen! In that case, use the ʻupdate_session_auth_hash ()` function.
Such as the document https://docs.djangoproject.com/en/3.0/topics/auth/default/#session-invalidation-on-password-change Was written in ...
By the way, I will also post the usage example described in this document.
from django.contrib.auth import update_session_auth_hash
def password_change(request):
if request.method == 'POST':
form = PasswordChangeForm(user=request.user, data=request.POST)
if form.is_valid():
form.save()
update_session_auth_hash(request, form.user)
else:
...