在Django中,可以通过自定义URLConf来限制PasswordResetView在提交邮件后跳转到PasswordResetDoneView。以下是实现的步骤:
urls.py
,导入PasswordResetView
和PasswordResetDoneView
:from django.contrib.auth.views import PasswordResetView, PasswordResetDoneView
PasswordResetView
类,继承自PasswordResetView
,并重写form_valid
方法:from django.urls import reverse_lazy
class CustomPasswordResetView(PasswordResetView):
def form_valid(self, form):
# 调用父类的form_valid方法,发送密码重置邮件
super().form_valid(form)
# 重定向到PasswordResetDoneView
return HttpResponseRedirect(reverse_lazy('password_reset_done'))
PasswordResetView
指向自定义的CustomPasswordResetView
,将PasswordResetDoneView
指向默认的视图:from django.urls import path
from .views import CustomPasswordResetView
urlpatterns = [
# 其他URL配置...
path('password_reset/', CustomPasswordResetView.as_view(), name='password_reset'),
path('password_reset/done/', PasswordResetDoneView.as_view(), name='password_reset_done'),
# 其他URL配置...
]
现在,当用户提交密码重置请求后,将会发送重置邮件并重定向到PasswordResetDoneView
视图。
请注意,以上代码仅限于限制PasswordResetView
在提交邮件后跳转到PasswordResetDoneView
,并不包括其他功能和错误处理。如果需要更多自定义和错误处理,可以进一步扩展和修改视图类。