django - 检查现有密码并重置密码

标签 django django-models django-forms django-admin django-views

views.py 保存密码:

elif 'reset_password' in request.POST:
    if request.POST['reset_password'].strip():
    saveuser = User.objects.get(id=user.id)
    saveuser.set_password(request.POST['reset_password']);
    saveuser.save()
    userform = UserForm(instance=saveuser)
    return redirect('incident.views.about_me')

弹出框获取旧密码和新密码

<div id="overlay_form" style="display:none">
    <form  method="post" action=".">
        {% csrf_token %}
        <h2>Reset Password</h2><br />
        <table>
      <tr><td>Enter your old password</td><td>
        <input type="text" name="old_password" id="old_password" maxlength="30" /></td></tr>
      <tr><td>Enter your new password</td><td><input type="text" name="new_password" id="new_password" maxlength="30" /></td></tr>
     <tr><td>Confirm your new password</td><td><input type="text" name="reset_password" id="reset_password" maxlength="30" /></td></tr>
      </table>
        <div style="width:180px;float:right;margin:20px 5px 0 10px">
            {% include "buttons/save.html" %}
            <button style="margin-right:10px;" type="button" id="close" name="cancel" class="forward backicon">
                <img src="{{ STATIC_URL }}images/button-icon-ir-back.png" width="12" height="17" alt="" />
            Cancel</button>
        </div>
    </form>
</div>

我可以保存新密码,但我想知道以下事情

  • 如何检查输入的旧密码与现有密码是否正确。

  • 如何验证新密码字段和确认密码字段。哪种验证更好。

需要帮助。

最佳答案

这是您检查旧密码的方式 - 在 set_password 之前,

user.check_password(request.POST['reset_password'])

另外,请通过以下方式检查密码确认。

elif 'reset_password' in request.POST:
    old_password = request.POST['old_password'].strip()
    reset_password = request.POST['reset_password'].strip()
    new_password = request.POST['new_password'].strip()

    if old_password && reset_password && reset_password == new_password:
        saveuser = User.objects.get(id=user.id)
        if user.check_password(old_password):
            saveuser.set_password(request.POST['reset_password']);
            saveuser.save()

            userform = UserForm(instance=saveuser)

        return redirect('incident.views.about_me')

使用 form 是一种更好的方法。

关于django - 检查现有密码并重置密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16700968/

相关文章:

python - 在模型中存储动态形式

python - 多维数组模型 Django

django - 使用 Django 的 DecimalField 可以存储的最大和最小十进制数是多少?

python - Django:从表单示例保存到数据库

Django ListView 忽略 get_Queryset 中的 Order_by

mysql - 如何使用单个 .csv 文件更新数据库(Django)中的多个表?

django - SelectDateWidget - 如何分别到达每个子字段?

python - 命令 'cc' 失败,并且 mysql_config 无法在安装了 Xcode5.1 且 site.cfg 已更改的情况下安装

python - 我的 Django 项目是否消耗了异常数量的 RAM?

database - Django:级联 on_delete 选项不起作用