Django模板:会话开始时删除按钮

时间:2013-08-19 21:19:15

标签: html django python-2.7 django-templates django-views

我正在尝试在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 %}

请建议我做什么,我是否使用错误的方式检查会话,或者是否有其他方法可以做到这一点,欢迎解决方案。

3 个答案:

答案 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 %}