我按照这个页面设置了一个 django 注册站点。它非常棒,并且注册和身份验证都包装得很好。
但是,它没有告诉我,在显示网页之前如何检查用户是否已登录,该用户是谁?登录后如何将用户引导到新页面?
谢谢!
我按照这个页面设置了一个 django 注册站点。它非常棒,并且注册和身份验证都包装得很好。
但是,它没有告诉我,在显示网页之前如何检查用户是否已登录,该用户是谁?登录后如何将用户引导到新页面?
谢谢!
在一个视图中,您可以使用if request.user.is_authenticated():
并且当前用户的变量是request.user
在模板中,您可以使用{% if user.is_authenticated %}
当前用户的变量是user
为了在登录后重定向用户,您可以在中设置LOGIN_REDIRECT_URL
变量settings.py
在 .py 文件中
您可以在每个视图中使用它
if not request.user.is_authenticated:
#do something
或者这个就在每个视图之前
@login_required
请记住,这需要导入,您可能还希望在您的文件from django.contrib.auth.decorators import login_required
中写入以将未登录用户重定向到特定 URL 而不是默认 URL )LOGIN_URL = "/loginurl/"
settings.py
accounts/login
在 .html 文档中
{% if not user.is_authenticated %}
Login is required
{% endif %}
登录后重定向
您可以LOGIN_REDIRECT_URL
在settings.py
或redirect("/indexpage")
在用户登录后。
最后一个需要导入from django.shortcuts import redirect
您还可以在视图之前使用登录所需的装饰器:
@login_required()
如果未登录的用户尝试访问您的视图,它会将用户重定向到登录页面
您将在此页面上找到更多信息: https ://docs.djangoproject.com/en/dev/topics/auth/default/#topic-authorization