Django, глобальные переменные шаблона - PullRequest
17 голосов
/ 08 февраля 2010

У меня есть файл базового шаблона (base.html), и каждый другой шаблон распространяется на него и генерирует контент, используя его блоки. Некоторые переменные, такие как nav_obj, используются в файле базового шаблона.

Вид:

nav_obj = NavigationObject.objects.all()

Базовый шаблон:

{% for object in nav_obj %}
<a href="{{ object.link }}">{{ object.title }}</a>
{% endfor %}

В данный момент мне нужно передавать nav_obj при каждом просмотре. Можно ли как-нибудь отправить это автоматически?

Ответы [ 4 ]

24 голосов
/ 08 февраля 2010

Напишите свой собственный контекстный процессор .

5 голосов
/ 09 февраля 2010

Теги включения может быть хорошей альтернативой контекстному процессору.

2 голосов
/ 31 августа 2011

Существует альтернатива, перенаправление здесь: Определение «глобальной переменной» в шаблонах Django

Пример использования фрагмента:

{% setglobal foo 0 %}
value={% getglobal foo %}
{% incrementglobal foo 0 %}
value={% setglobal foo %}
0 голосов
/ 08 февраля 2010

Вы также можете посмотреть документацию и тесты на Django-navbar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...