Найти - Пользователи
Полная версия: После логирования имя пользователя отображается только на стартовой странице
Начало » Django » После логирования имя пользователя отображается только на стартовой странице
1
megoloman
Здравствуйте, есть следующая проблема.
В базовом шаблоне с помощью foundation.css я разместил вот такую конструкцию

<nav class=“top-bar”>
<section class=“top-bar-section”>
<ul class=“right”>
{% if username %}
<li><a href=“/auth/logout”>({{username}}) Выйти </a></li>
{% else %}
<li><a href=“/auth/login”>Войти</a></li>
{% endif %}
</ul>
</section>
</nav>

Всё работает, после входа в систему в верхнем правом углу появляется имя пользователя. Однако после перехода на другую страницу имя пльзователя пропадает и снова появляется кнопка “Войти”, после возвращения на главную опять всё норм, имя пользователя на месте. Наследование от базового шаблона присутствует на других страницах. Подскажите пожалуйста в чем причина?
botinag
Вероятно, во вьюхе, связанной со стартовой страницей, в контекст передается username, а в остальных вьюхах - нет.
SirJorah
Цитата из Головатого и Каплан-Мосса (глава 9):
django.core.context_processors.auth
Если TEMPLATE_CONTEXT_PROCESSORS включает этот процессор, то все объекты RequestContext будут содержать следующие переменные:
- user: экземпляр django.contrib.auth.models.User, описывающий текущего аутентифицированного пользователя (или экземпляр класса AnonymousUser, если пользователь не аутентифицирован

Так не проще ли использовать дефолтную переменную {{user}}? После аутентификации она обычно присутствует во всех шаблонах, как и обещают авторы.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB