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
在我的 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