[英]django-registration: how do I check whether the user is logged in before displaying a page
我按照这个页面建立了一个 django 注册站点。 它非常棒,注册和身份验证都很好地包装了。
但是,它没有告诉我,在显示网页之前,我如何检查用户是否已登录,该用户是谁? 以及如何在登录后将用户定向到新页面?
谢谢!
在一个视图中,可以使用if request.user.is_authenticated():
并且当前用户的变量是request.user
在模板中,您可以使用{% if user.is_authenticated %}
并且当前用户的变量是user
为了在登录后重定向用户,您可以在settings.py
中settings.py
LOGIN_REDIRECT_URL
变量
在 .py 文件中
您可以在每个视图中使用它
if not request.user.is_authenticated:
#do something
或者这只是在每个视图之前
@login_required
请记住,这需要from django.contrib.auth.decorators import login_required
你可能还需要写入LOGIN_URL = "/loginurl/"
在你的settings.py
获得非登录用户重定向到一个特定的URL,而不是默认的一个accounts/login
)
在 .html 文件中
{% if not user.is_authenticated %}
Login is required
{% endif %}
登录后重定向
您可以在settings.py
修改LOGIN_REDIRECT_URL
或在用户登录后redirect("/indexpage")
。
最后一个需要from django.shortcuts import redirect
您还可以在视图之前使用需要登录的装饰器:
@login_required()
如果未登录的用户尝试访问您的视图,它会将用户重定向到登录页面
您将在此页面上找到更多信息: https : //docs.djangoproject.com/en/dev/topics/auth/default/#topic-authorization
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.