【问题标题】:set_password() method is saving plain textset_password() 方法正在保存纯文本
【发布时间】:2020-03-22 05:56:38
【问题描述】:

当我从视图中保存用户并编写代码时,它会将密码保存为纯文本,但是当我在 shell 中使用相同的 set_password() 方法时,它会完美地保存散列密码。请指出我在哪里犯了错误。实际上,我是直接从 Excel 工作表中保存数据。

username="username"
password="password"
firstName="first"
lastName="lastname"
user=User.objects.create(
            firstName    =   firstName,
            lastName     =   lastName,
            username     =   username,
        )   
        user.set_password(password)

        user.is_student = True
        user.school = request.user.school
        user.save()
        user_ins = User.objects.get(username=username)

【问题讨论】:

    标签: python django django-models django-views


    【解决方案1】:

    如下修改

     user = User.objects.create_user(username=username, password=password, first_name=first_name, last_name=last_name)
    

    【讨论】:

      【解决方案2】:

      set_password 只创建一个散列密码;它不会保存数据中的值。调用 save() 来实际保存它。

      在您的代码中,尝试

      user.save()
      

      线下

      user.set_password(user.password)
      

      【讨论】:

        猜你喜欢
        • 2020-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多