我正在尝试在Django中进行登录身份验证。我已在上方导航栏中登录并注册了按钮。
现在我需要实现的是当我登录应用程序时会发生重定向,然后检查会话,如果会话已启动,则登录和注册按钮消失,用户ABC按钮到来在它的位置。
我正在尝试使用我在此处剪断的代码执行此操作。
{% if request.session.loggedin %}
<li><a data-toggle="modal" href="#"><b>Hello Chitrank</b></a></li>
{% else %}
<li><a data-toggle="modal" href="#signup"><b>Sign Up</b></a></li>
<li><a data-toggle="modal" href="#signin"><b>Sign In</b></a></li>
{% endif %}
请建议我做什么,我是否使用错误的方式检查会话,或者是否有其他方法可以做到这一点,欢迎解决方案。
答案 0 :(得分:5)
{% if user.is_authenticated %}
正是您要找的。 https://docs.djangoproject.com/en/dev/ref/templates/api/#django-contrib-auth-context-processors-auth
也允许你这样做
<span>Welcome back {{ user.username }}!</span>
答案 1 :(得分:0)
基于登录用户,还有另一种解决方案(要求您在auth系统中使用django build)。
您可以访问模板中的request.user.is_authenticated
并区分其状态(True为loggend in。)
答案 2 :(得分:0)
您可以检查您是否已在相应的视图中登录并将变量current_user
传递到模板,然后检查:
{% if current_user %}
Hello, {{current_user.name}}
{% else %}
{# ... Display signin and signup buttons #}
{% endif %}