Как передать переменную в шаблон, который расширяет другой шаблон?
Здравствуйте. Я использую в django расширение шаблонов с таким кодом: {% extends 'main_application/base.html' %}
В шаблон base.html я прописал {{ request.user }}, чтобы в других шаблонах отображалось имя пользователя. Так и работает, а как сделать так, чтобы я таким же образом в base.html передал переменную из views.py или каким-то ещё образом?
Например, мне нужно из базы данных вытащить переменную с именем организации, в которой пользователь находится, и вставить в base.html.
{% extends %} получает тот же контекст, что и основной шаблон. Если вы хотите в базовом или в дочернем шаблоне использовать переменную request, нужно передать запрос в контекст при рендеринге шаблона render(template, {"request": request})
Это я понимаю) Я имею в виду, чтобы в базовый шаблон передать переменную, и, когда подключаю базовый шаблон, передавались переменные также с базового шаблона.
Скажем, у меня есть переменная количества сообщений, я хочу поместить количество в меню, а меню в базовом шаблоне. Саму переменную не из views передать можно? Я же {{requestuser}}, передаю не из представления. Извините, если глупо изъясняюсь.
Я задаюсь этим вопросом, потому что у меня какая-то глупость в коде получается, если я хочу, чтобы в меню всегда отображалась переменная количества сообщений в меню(меню само находится в base.html), то мне прямо в каждое представление нужно прописать переменную количества сообщений.
если я хочу, чтобы в меню всегда отображалась переменная количества сообщений в меню(меню само находится в base.html), то мне прямо в каждое представление нужно прописать переменную количества сообщений.
Именно так это и работает: чтобы в шаблоне что-то отобразилось, это туда надо передать. Есть правда пара инструментов, облегчающих пункт про "в каждое представление". Почитайте про контекстные процессоры и внезапно, про наследование class-based views
Сергей Тихонов, Ох, я в курсе этого. В общем, есть меню сайта, само меню у меня в base.html, я хочу в меню около пункта "сообщения" передать рядом переменную количества сообщений. Можно ЛИ, при подключении этого шаблона с меню к другому шаблону, {% extends 'main_application/base.html' %}
отобразить количество сообщений не с помощью views, которой отвечает за шаблон, куда вставляется base.html?