PasswordChangeView中的success_url会覆盖PasswordChangeDoneView吗?

时间:2019-08-26 08:56:07

标签: django django-views

在Django身份验证中使用PasswordChangeView时:

path('password_change/', auth_views.PasswordChangeView.as_view(
        template_name='accounts/password_change.html',
        success_url='accounts/password_change_success.html'),
        name='password_change'),

与在success_url中传递PasswordChangeDoneView并覆盖success_url时一样,PasswordResetView是否覆盖PasswordResetDoneView?来自docs

  

PasswordResetDoneView   如果PasswordResetView没有设置明确的success_url URL,则默认情况下会调用此视图。

文档对success_url中的PasswordChangeViewPasswordChangeDoneView之间的行为保持沉默。

1 个答案:

答案 0 :(得分:1)

success_url [Django-doc]是在表单成功的情况下重定向(通过302 HTTP响应)到的URL。

PasswordChangeView [Django-doc]中,我们在source code [GitHub]中看到它使用了:

LoadChildren

因此,如果您自己自己指定一个class PasswordChangeView(PasswordContextMixin, FormView): form_class = PasswordChangeForm success_url = reverse_lazy('password_change_done') template_name = 'registration/password_change_form.html' title = _('Password change') # ...,它将重定向到名称为success_url的视图。