[Python][Django]パスワード変更時の挙動

やりたかったこと

ログインしている状態で、ユーザーのパスワード変更処理を実装したい

問題

パスワード変更自体は問題なくできるが、認証が切れてしまう

結論

update_session_auth_hashを使用する

def form_valid(self, form):
        user = User.objects.get(id=self.request.user.id)
        user.set_password(form.cleaned_data.get('password'))
        user.save()
        update_session_auth_hash(self.request, user)

コメント

タイトルとURLをコピーしました