我已经在Django中实现了密码重置功能,它正常工作,但是当我从Gmail浏览器打开帐户恢复链接时,将我重定向到Django的内置password_reset_confirm页面,我希望它将我重定向到我的自定义password_reset_confirm.html urls.py代码。
app_name="accounts"
urlpatterns=[
path('password_reset/',auth_views.PasswordResetView.as_view( template_name='password_reset.html', success_url=reverse_lazy('accounts:password_reset_done')),name='password_reset'),
path('password_reset_done/', auth_views.PasswordResetDoneView.as_view(template_name='password_reset_done.html'), name='password_reset_done'),
path('password_reset_confirm/<uidb64>/<token>/',auth_views.PasswordResetConfirmView.as_view(template_name='password_reset_confirm.html',success_url=reverse_lazy('accounts:password_reset_complete')),name='password_reset_confirm.html'),
path('password_reset_complete/', auth_views.PasswordResetCompleteView.as_view(template_name='password_reset_complete.html'), name='password_reset_complete'),
]我还想检查用户输入的电子邮件id是否存在。如果用户输入的电子邮件id不存在,则应该在password_reset.html页面上弹出一条消息“此电子邮件id不存在”。
发布于 2022-05-18 06:44:40
我注意到你的一些urls是错的。如您所知,django有一个内置的系统来恢复密码。所以你需要尊重道路。
from django.urls import path, include
from django.contrib.auth import views as auth_views
path('password-reset/',
auth_views.PasswordResetView.as_view(
template_name='accounts/password_reset.html'
),
name='accounts-recover'),
path('password-reset/done/',
auth_views.PasswordResetDoneView.as_view(
template_name='accounts/password_reset_done.html'
),
name='password_reset_done'),
path('password-reset-confirm/<uidb64>/<token>/',
auth_views.PasswordResetConfirmView.as_view(
template_name='accounts/password_reset_confirm.html'
),
name='password_reset_confirm'),
path('password-reset-complete/',
auth_views.PasswordResetCompleteView.as_view(
template_name='accounts/password_reset_complete.html'
),
name='password_reset_complete'),请确保您在accounts/templates/accounts下拥有所有自定义模板,以便django能够找到要呈现的html。
关于你的第二个请求:
检查用户输入的电子邮件id是否存在。
您需要阅读姜戈博士 --这是可能的,但是您需要创建一些逻辑。此外,我不建议提供任何反馈,除了“邮件发送”在这些页面,这可能是一个安全漏洞和数据泄漏在您的应用程序。
祝好运
https://stackoverflow.com/questions/72268016
复制相似问题