0

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

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

4

3 回答 3

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>
于 2013-08-20T07:59:06.050 回答
0

对此还有另一种解决方案,基于登录用户(要求您在身份验证系统中使用 django 构建)。您可以request.user.is_authenticated在您的模板中访问并区分其状态(True 是登录)。

于 2013-08-19T21:37:36.080 回答
0

您可以检查您是否在相应的视图中登录并将变量传递current_user给您的模板,然后检查:

    {% if current_user %}
        Hello, {{current_user.name}}
    {% else %}
        {# ... Display signin and signup buttons #}
    {% endif %}
于 2013-08-19T21:54:31.803 回答