Форум сайта python.su
Здравствуйте, есть следующая проблема.
В базовом шаблоне с помощью 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>
Всё работает, после входа в систему в верхнем правом углу появляется имя пользователя. Однако после перехода на другую страницу имя пльзователя пропадает и снова появляется кнопка “Войти”, после возвращения на главную опять всё норм, имя пользователя на месте. Наследование от базового шаблона присутствует на других страницах. Подскажите пожалуйста в чем причина?
Офлайн
Вероятно, во вьюхе, связанной со стартовой страницей, в контекст передается username, а в остальных вьюхах - нет.
Офлайн
Цитата из Головатого и Каплан-Мосса (глава 9):
django.core.context_processors.authТак не проще ли использовать дефолтную переменную {{user}}? После аутентификации она обычно присутствует во всех шаблонах, как и обещают авторы.
Если TEMPLATE_CONTEXT_PROCESSORS включает этот процессор, то все объекты RequestContext будут содержать следующие переменные:
- user: экземпляр django.contrib.auth.models.User, описывающий текущего аутентифицированного пользователя (или экземпляр класса AnonymousUser, если пользователь не аутентифицирован
…
Отредактировано SirJorah (Окт. 29, 2015 12:54:50)
Офлайн