Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » После логирования имя пользователя отображается только на стартовой странице [RSS Feed]

#1 Окт. 26, 2015 19:11:14

megoloman
Зарегистрирован: 2015-10-26
Сообщения: 113
Репутация: +  0  -
Профиль   Отправить e-mail  

После логирования имя пользователя отображается только на стартовой странице

Здравствуйте, есть следующая проблема.
В базовом шаблоне с помощью 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>

Всё работает, после входа в систему в верхнем правом углу появляется имя пользователя. Однако после перехода на другую страницу имя пльзователя пропадает и снова появляется кнопка “Войти”, после возвращения на главную опять всё норм, имя пользователя на месте. Наследование от базового шаблона присутствует на других страницах. Подскажите пожалуйста в чем причина?

Офлайн

#2 Окт. 26, 2015 20:20:09

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

После логирования имя пользователя отображается только на стартовой странице

Вероятно, во вьюхе, связанной со стартовой страницей, в контекст передается username, а в остальных вьюхах - нет.

Офлайн

#3 Окт. 29, 2015 12:54:29

SirJorah
Зарегистрирован: 2015-04-21
Сообщения: 41
Репутация: +  2  -
Профиль   Отправить e-mail  

После логирования имя пользователя отображается только на стартовой странице

Цитата из Головатого и Каплан-Мосса (глава 9):

django.core.context_processors.auth
Если TEMPLATE_CONTEXT_PROCESSORS включает этот процессор, то все объекты RequestContext будут содержать следующие переменные:
- user: экземпляр django.contrib.auth.models.User, описывающий текущего аутентифицированного пользователя (или экземпляр класса AnonymousUser, если пользователь не аутентифицирован

Так не проще ли использовать дефолтную переменную {{user}}? После аутентификации она обычно присутствует во всех шаблонах, как и обещают авторы.

Отредактировано SirJorah (Окт. 29, 2015 12:54:50)

Офлайн

  • Начало
  • » Django
  • » После логирования имя пользователя отображается только на стартовой странице[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version