#html #djan&o
#HTML #djan&o
Вопрос:
Я новичок в DJan&o и создаю веб-сайт. Я создал базовую HTML-страницу с навигационной панелью, которая будет использоваться на всех страницах. Я хочу отображать сообщение «Добро пожаловать ‘username'» в качестве первой строки на всех страницах.
Я написал следующий код в views.py
def &etusername(request):
uname=request.&etusername()
return render(request,'main.html',{'uname':uname})
в main.html после определения заголовка и основной строки у меня есть следующий html-код
<span class="label label-default"&&t;Welcome{{uname}}</span&&t;
Когда я запускаю этот код, я могу просматривать панель навигации на всех страницах, которые расширяют базовую страницу (main.html )
но в приветственном сообщении не отображается имя пользователя.
Я настроил следующее в urls.py
path("", views.&etusername,name='&etusername')
Примечание: даже когда я жестко кодирую строку, которая должна быть возвращена из views.py строка не отображается как часть приветственного сообщения
Ответ №1:
В каждом шаблоне у вас есть доступ к объекту user. Вы можете проверить, аутентифицирован ли пользователь:
{% if user.is_authenticated %}
Welcome, {{ user.username }}
{% else %}
# show re&ister or(and) lo&in button
{% endif %}
Комментарии:
1. Сегодня я провел небольшую проверку, без каких-либо изменений в приведенном выше коде я просмотрел базовый HTML (в моем случае main, html). Я мог видеть отображаемое имя пользователя, с которым я вошел в систему. @qwanysh, я добавил предложенный вами фрагмент кода в свой базовый HTML, и он всегда вводит остальную часть кода. значение для user.username является пустой строкой