繁体   English   中英

django-registration:如何在显示页面之前检查用户是否已登录

[英]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.pysettings.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM