首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django -通过编码更改用户密码

Django -通过编码更改用户密码
EN

Stack Overflow用户
提问于 2022-07-19 01:13:08
回答 1查看 243关注 0票数 0

我正在尝试授予更改登录用户密码的权限。编码如下..。结果是由于密码已被更改,但密码未设置。

注:模板有三个文本框

当前password

  • "password“的
  1. "old”用于新的password
  2. "confirm“以确认新密码。

代码语言:javascript
复制
def changepassword(request):
    if request.method == 'POST':
        user = authenticate(request, username=request.user,password=request.POST['old'])
        if user is None:
            return render(request, 'pmp/changepassword.html', {'error': 'Current Password Enter Mismatch! '})
        else:
            try:
                if request.POST['password'] == request.POST['confirm']:
                    u = request.user
                    u.set_password('password')
                    return render(request, 'pmp/changepassword.html', {'success':'Password has been changed!'})
                else:
                    return render(request, 'pmp/changepassword.html',{'form': AuthenticationForm(), 'error': 'New Password and confirm Password mismatch!'})    
            except ValueError:
                return render(request, 'pmp/changepassword.html',{'form': AuthenticationForm(), 'error': 'Password not changed!'})
            
    return render(request, 'pmp/changepassword.html')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-19 01:25:36

设置密码后,需要对用户调用save()set_password()不将新密码保存到DB

代码语言:javascript
复制
    u = request.user
    u.set_password(request.POST['password'])
    u.save() # Add this line
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73030104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档