Django 2.0 身份验证视图中 Reset Done 和 reset Complete 的区别
Difference Between Reset Done and reset Complete in Django 2.0 Authentication Views
我正在考虑对 Django 项目实施用户身份验证。我正在通读 documentation。它看起来很简单,但有一件事我不明白。
显然认证包括八个视图:
accounts/login/ [name='login']
accounts/logout/ [name='logout']
accounts/password_change/ [name='password_change']
accounts/password_change/done/ [name='password_change_done']
accounts/password_reset/ [name='password_reset']
accounts/password_reset/done/ [name='password_reset_done']
accounts/reset/<uidb64>/<token>/ [name='password_reset_confirm']
accounts/reset/done/ [name='password_reset_complete']
在实施密码重置时,我假设我想做的是实施 accounts/password_reset/
,它会向用户转发一封电子邮件。然后,我需要实施 accounts/reset/<uidb64>/<token>/
,这是用户通过电子邮件定向到的位置。我不清楚的是当用户成功更新密码后应该做什么。
accounts/reset/done/
(或password_resest_complete
)和accounts/password_reset/done/
(或password_reset_done
)有什么区别?
好问题。它们是这样的:
class PasswordResetCompleteView(PasswordContextMixin, TemplateView):
template_name = 'registration/password_reset_complete.html'
title = _('Password reset complete')
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['login_url'] = resolve_url(settings.LOGIN_URL)
return context
class PasswordResetDoneView(PasswordContextMixin, TemplateView):
template_name = 'registration/password_reset_done.html'
title = _('Password reset sent')
主要区别在于 PasswordResetCompleteView
将 LOGIN_URL
传递给您的模板上下文。
password_reset_done
显示发送电子邮件时的成功消息(在 password_reset
中输入电子邮件后)。 password_reset_complete
成功更改密码时显示成功消息。
如果您查看这些视图的 source code,就会有解释该过程的注释。第 237 - 242 行:
# 4 views for password reset:
# - password_reset sends the mail
# - password_reset_done shows a success message for the above
# - password_reset_confirm checks the link the user clicked and
# prompts for a new password
# - password_reset_complete shows a success message for the above
我正在考虑对 Django 项目实施用户身份验证。我正在通读 documentation。它看起来很简单,但有一件事我不明白。
显然认证包括八个视图:
accounts/login/ [name='login']
accounts/logout/ [name='logout']
accounts/password_change/ [name='password_change']
accounts/password_change/done/ [name='password_change_done']
accounts/password_reset/ [name='password_reset']
accounts/password_reset/done/ [name='password_reset_done']
accounts/reset/<uidb64>/<token>/ [name='password_reset_confirm']
accounts/reset/done/ [name='password_reset_complete']
在实施密码重置时,我假设我想做的是实施 accounts/password_reset/
,它会向用户转发一封电子邮件。然后,我需要实施 accounts/reset/<uidb64>/<token>/
,这是用户通过电子邮件定向到的位置。我不清楚的是当用户成功更新密码后应该做什么。
accounts/reset/done/
(或password_resest_complete
)和accounts/password_reset/done/
(或password_reset_done
)有什么区别?
好问题。它们是这样的:
class PasswordResetCompleteView(PasswordContextMixin, TemplateView):
template_name = 'registration/password_reset_complete.html'
title = _('Password reset complete')
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['login_url'] = resolve_url(settings.LOGIN_URL)
return context
class PasswordResetDoneView(PasswordContextMixin, TemplateView):
template_name = 'registration/password_reset_done.html'
title = _('Password reset sent')
主要区别在于 PasswordResetCompleteView
将 LOGIN_URL
传递给您的模板上下文。
password_reset_done
显示发送电子邮件时的成功消息(在 password_reset
中输入电子邮件后)。 password_reset_complete
成功更改密码时显示成功消息。
如果您查看这些视图的 source code,就会有解释该过程的注释。第 237 - 242 行:
# 4 views for password reset:
# - password_reset sends the mail
# - password_reset_done shows a success message for the above
# - password_reset_confirm checks the link the user clicked and
# prompts for a new password
# - password_reset_complete shows a success message for the above