如何使用PasswordChangeView Django 2.2

时间:2019-12-23 10:37:06

标签: python django

我必须尝试使用​​Django.contrib.auth.views.PasswordChangeView创建一个更改密码页面,例如:

[views.py]

class ChangePasswordView(LoginRequiredMixin, PasswordChangeView):
    template_name = 'accounts/password_change.html'
    success_url = reverse_lazy('account:password_change_done')


class ChangePasswordDoneView(LoginRequiredMixin, PasswordChangeDoneView):
    template_name = 'accounts/password_change_done.html'

使用类似URL的

[urls.py]

path('profile/update/password/', views.ChangePasswordView.as_view(),
         name='password_change'),
    path('profile/update/password/success/', views.ChangePasswordDoneView.as_view(),
         name='password_change_done'),

我使用自定义用户,但是我查看源代码,Django通过request.user获取用户,所以如果我使用自定义用户,这不是问题。 但是为什么我的更改密码不起作用,如果我用正确的旧密码和新密码更改了密码,则表单会返回成功页面但不更改我的密码,而我尝试在旧密码中使用错误的密码,但总是返回成功页面。有什么问题吗?

1 个答案:

答案 0 :(得分:0)

我很抱歉,我的问题是我的表单操作不是对password_change url而是对我的成功url。我的失败不检查这一点。谢谢

相关问题