自定义`password_reset_confirm.html`模板不会重定向到`password_reset_complete`视图

时间:2018-03-28 17:57:55

标签: django

我制作了自定义password_reset_confirm.html模板。但是,当用户输入新密码并点击提交时,浏览器不会重定向到管理视图password_reset_complete

以下是我在自定义password_reset_confirm.html模板中所做的表单:

  <div ng-app="app" ng-controller="Ctrl">   
    <form id="reset-pw-confirm-form" name="newPWForm" method="post" action="">
        {% csrf_token %}
        <input 
            id="id_new_password1"
            type="[[[ newPW.showPW ? 'text' : 'password' ]]]"
            name="new_password1"
            ng-model="newPW.pw"
            ng-minlength="8" 
            ng-maxlength="32"
        required>
        <button class="btn btn-primary" type="submit" ng-disabled="!newPW.pw">Submit</button>
        <input 
            id="id_new_password2"
            type="hidden"
            value="[[[ newPW ]]]"
            name="new_password2"
            ng-model="newPW"
            ng-minlength="8" 
            ng-maxlength="32"                       
            required>
    </form>
</div>

当我填写密码并点击提交时,浏览器会向其登陆的同一网址发送POST请求,但该页面似乎只是刷新而没有任何更改。用户密码保持不变。似乎Django的auth/views.py没有正确执行。

在该视图中,有以下代码:

if post_reset_redirect is None:
    post_reset_redirect = reverse('password_reset_complete')
else:
    post_reset_redirect = resolve_url(post_reset_redirect)

当我有视图打印post_reset_redirect时,它会打印None。这可能是问题吗?

如何使我的自定义模板与Django的password_reset_confirm视图兼容?

2 个答案:

答案 0 :(得分:0)

当您为表单指定“action”属性时,它将用作数据发送的链接,因此可能不会处理您的逻辑。尝试删除它并检查js文件,将数据发送到指定的链接。 另请检查password_reset_confirm的所有必需参数 https://docs.djangoproject.com/en/1.8/_modules/django/contrib/auth/views/

答案 1 :(得分:0)

我隐藏的input valueng-model属性需要设置为newPW.pw