Django user.is_authenticated не для некоторой подстраницы
В моем index.html (базовый шаблон) есть навигационная панель и user 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