python 如何传递change_password. html来替换Django管理员密码重置

hec6srdp  于 2023-02-18  发布在  Python
关注(0)|答案(1)|浏览(116)

目前在我的urls.py我有以下链接用户重置密码

app_name = 'users'
..............
    path('login/', MyLoginView.as_view(redirect_authenticated_user=True,template_name='users/login.html'), name='login'),
    path('password/', user_views.change_password, name='change_password'),
    .............................
    .............................
    ...............................
    path('password-reset-complete/', auth_views.PasswordResetCompleteView.as_view(template_name='users/password_reset_complete.html'),name='password_reset_complete'),

当用户收到重置邮件并点击链接重置密码后,系统会转到Django管理风格页面重置密码。
我如何传递我拥有的change_password.html模板,以及如何在之后重定向到登录页面进行登录?

ldfqzlk8

ldfqzlk81#

您可以使用PasswordResetConfirmView,然后传递template_name参数。
要在重置密码后将用户重定向到登录页面,可以将login_url属性设置为登录页面的URL。
urls.py

from django.contrib.auth import views as auth_views
from users import views as user_views

app_name = 'users'
..............
    path('login/', MyLoginView.as_view(redirect_authenticated_user=True, template_name='users/login.html'), name='login'),
    path('password/', user_views.change_password, name='change_password'),
    path('password-reset-confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name='users/change_password.html'), name='password_reset_confirm'),
    path('password-reset-complete/', auth_views.PasswordResetCompleteView.as_view(template_name='users/password_reset_complete.html', login_url='/any-login-url/'), name='password_reset_complete'),
    .............................
    ...............................

相关问题