Django user.is_authenticated 不适用于某些子页面

Django user.is_authenticated is not for some subpage

在我的 index.html(基本模板)中有导航栏和用户 is_authenticated 不适用于个人资料子页面它适用于主页
Index.html

<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
...

 {% if user.is_authenticated %}
        <li class="nav-item">
          <a class="nav-link mx-1" href="/account/profile/">{{user.username}}</a>
        </li>
        <li class="nav-item btn-danger ">
          <a class="nav-link text-white " href="/account/logout/">Logout</a>
        </li>
        {% else %}
        <li class="nav-item">
          <a class="nav-link" href="/account/login/">Login</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="/account/register/">Register</a>
        </li>
        {% endif %}
...
</nav>

Profile.html

{% extends 'index.html' %}

{% block body %} 
{% for user_info in user%}
<div>
...
</div>
{% endfor %}
{% endblock body %}

我在这里尝试的是,当我登录时,它会删除登录和注册按钮,取而代之的是无论出现什么用户名和注销按钮,它都可以在主页上工作,但是每当我进入个人资料页面时,我都会看到登录和注册,即使我我目前已登录。

谢谢,如有任何建议,我们将不胜感激。

您需要在模板中使用 request.user.is_authenticated 访问经过身份验证的用户。我认为您可以在 index.html 中访问用户,因为您在上下文中传递了用户。使用 request 您可以在任何模板中访问用户,而无需将其放在 conext