【问题标题】:password dont change in views.py on django密码不要在 django 上的 views.py 中更改
【发布时间】:2021-08-10 16:20:10
【问题描述】:

我正在尝试在我的 views.py 上更改用户的密码,并且每当我更改密码时,我都会失去连接并无法访问我的帐户

我的观点.py:

 user = User.objects.get(id=request.user.id) 
 user.password = make_password(request.POST.get("password")) 
 user.save()

【问题讨论】:

    标签: django django-models django-views django-forms


    【解决方案1】:

    User 对象通常有一个.set_password(…) method [Django-doc],因此您可以使用以下命令更新该密码:

    request.user.set_password(request.POST['password'])
    request.user.save()

    您可以省略获取用户对象,因为request.user aleady 会这样做。因此,使用user = User.objects.get(id=request.user.id) 是一个额外的查询,仅相当于request.user

    【讨论】:

      【解决方案2】:

      尝试使用 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提供的解释

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-16
        相关资源
        最近更新 更多