gpt4 book ai didi

Django:从重置密码页面重定向登录用户

转载 作者:行者123 更新时间:2023-12-05 02:53:48 25 4
gpt4 key购买 nike

如果用户已登录并将其重定向到主页,我想限制对 reset_password 页面的访问!

我尝试使用另一个这样的类,但它不起作用

#views.py
class MyPasswordResetView(UserPassesTestMixin, PasswordResetView):
template_name = 'security/reset_password.html'

def test_func(self):
if self.request.user.is_authenticated:
return redirect("home-page")
return self.request.user.is_anonymous

但它不起作用!

#urls.py
urlpatterns = [
path('register/', register_page, name = "register-page"),
path('home/', home, name = "home-page"),
path('logout/', logout_view, name = "logout"),
path('login/', login_page, name = "login"),

path('account/', account_view, name = "account"),


path('change_password/', auth_views.PasswordChangeView.as_view(template_name = "security/change_password.html"), name = "password_change"),
path('change_password/done/', auth_views.PasswordChangeDoneView.as_view(template_name = "security/change_password_succes.html"), name = "password_change_done"),



path('reset_password/', MyPasswordResetView.as_view(subject_template_name = "security/password_reset_subject.txt", email_template_name = "security/password_reset_email.html", template_name = "security/reset_password.html"), name = "password_reset"),

path('reset_password/done/', auth_views.PasswordResetDoneView.as_view(template_name = "security/password_reset_done.html"), name = "password_reset_done"),

path('reset_password_din_mail_venita/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(template_name = "security/ajunge_din_mail_aici.html"), name='password_reset_confirm'),


path('reset_password/complete/', auth_views.PasswordResetCompleteView.as_view(template_name = "security/password_reset_complete.html"), name = "password_reset_complete"),

]

最佳答案

您可以覆盖 .dispatch(…) method [Django-doc] ,例如,这也是在 LogoutView 中完成的以注销用户:

class MyPasswordResetView(PasswordResetView):
template_name = 'security/reset_password.html'

def <b>dispatch</b>(self, *args, **kwargs):
if self.request.user.is_authenticated:
return redirect('home-page')
return super().dispatch(*args, **kwargs)

关于Django:从重置密码页面重定向登录用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61993023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com