django - Django 3:忘记密码重置:有没有办法阻止密码重置视图在用户登录时出现?
问题描述
我已经使用 django.contrib.auth.views 实现了一个内置的 Django 密码重置过程。它可以工作,但是有一个问题,当用户登录时,他/她仍然可以输入密码重置网址然后重置密码。我想防止用户登录时出现密码重置视图。实现此目的的最佳方法是什么?
解决方案
视图.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='/'
推荐阅读
- angular - 如何使用 Angular 材料(如 Angular.io/resources 网站)插入社交图标?
- javascript - 将此无限循环添加到我的 javascript 代码后,为什么我的页面无法加载?
- c# - 如何在 NavigationView 顶部禁用填充
- r - ggplot2::scale_x_time: 格式化 hms 对象
- azure - Azure 事件中心上的 POST 数据失败
- android - AndroidRuntime 错误 SecurityException: GoogleCertificatesRslt: 未列入白名单
- php - react/axios Auth 和 CORS 问题
- excel - 如何从数字成绩和字母成绩的混合中计算平均成绩,其值是通过查找表确定的
- ios - 在任何屏幕顶部填充 hStack
- android - Android View 未通过数据绑定更新