首页 > 解决方案 > Django 3:忘记密码重置:有没有办法阻止密码重置视图在用户登录时出现?

问题描述

我已经使用 django.contrib.auth.views 实现了一个内置的 Django 密码重置过程。它可以工作,但是有一个问题,当用户登录时,他/她仍然可以输入密码重置网址然后重置密码。我想防止用户登录时出现密码重置视图。实现此目的的最佳方法是什么?

标签: djangoauthenticationreset-password

解决方案


视图.py:

def password_reset(request):
    if not request.user.is_authenticated:
        #Stuff
    else:
        return HttpResponseRedirect("/home/")

或者

基于类的视图中的快捷方式

网址.py:

urlpatterns = [
path('password/reset/',PasswordResetView.as_view(redirect_authenticated_user=True,),name='reset_password'),

# OR function base view..

path('password/reset/',PasswordResetView,{'redirect_authenticated_user': True},name='reset_password')
         
]

阅读文档..

settings.py:(必须)

LOGIN_REDIRECT_URL='/'

推荐阅读