用户在更改密码后正在注销

时间:2016-06-30 10:40:49

标签: python django django-views

我有一个允许用户更改密码的视图。我不想使用默认密码验证系统。当用户更改密码时,密码成功更改但用户正在注销。我看到该会话是密码更改失效。我不想在密码更改后再次登录。那么如何在密码更改后保留会话?

我的views.py文件,

from django.contrib.auth import update_session_auth_hash
def password_change(request):
    if request.method == 'POST':
        new_password = request.POST.get('pwd') 
        user=request.user  
        try:  
            u = User.objects.get(username=user)
            u.set_password(new_password)
            u.save()
            update_session_auth_hash(request,user)
            messages.add_message(request, messages.INFO, 'Password successfully changed')   
            return redirect("password_change") 
        except User.DoesNotExist:
            messages.add_message(request, messages.INFO, 'User Does not exist')   
    else:
        return render(request,"password_change.html",{})

1 个答案:

答案 0 :(得分:1)

您应该在update_session_auth_hash中使用变量u。您正在使用" user"来自请求,仍然有旧密码。