我制作了自定义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
视图兼容?
答案 0 :(得分:0)
当您为表单指定“action”属性时,它将用作数据发送的链接,因此可能不会处理您的逻辑。尝试删除它并检查js文件,将数据发送到指定的链接。 另请检查password_reset_confirm的所有必需参数 https://docs.djangoproject.com/en/1.8/_modules/django/contrib/auth/views/
答案 1 :(得分:0)
我隐藏的input
value
和ng-model
属性需要设置为newPW.pw
。