Django: Как импортировать переменные в HTML-шаблоны - PullRequest
1 голос
/ 03 мая 2011

У меня есть приложение django, и я хочу изменить его везде, где в моих шаблонах написано «Идентификатор компании».Дело в том, что это может быть очень утомительно, потому что я должен внести это изменение в каждый шаблон с надписью «Идентификатор компании».Тогда я подумал, что мог бы создать другой файл, который может хранить эту запись, который я могу легко настроить для идентификатора компании.

config.py

company_no = "Company id"

Это может работать в моих формах.пи файл.Я могу импортировать company_no, сказав

forms.py

from mmc.config import company_no

Но тогда как я могу сделать то же самое для шаблонов?Импорт company_no в шаблон - есть ли способ обойти?

Ответы [ 3 ]

2 голосов
/ 03 мая 2011

Это то, для чего нужны контекстные процессоры . Определите название вашей компании в settings.py, затем напишите обработчик контекста, который импортирует его оттуда и возвращает его в словарь - тогда он будет доступен в каждом шаблоне (если вы используете RequestContext для визуализации шаблона).

1 голос
/ 03 мая 2011

Как сказал Блендер, вам нужно передавать переменные, подобные этой, как часть контекста при рендеринге шаблона. Вы можете создать словарь или именованный кортеж с общими элементами, сохраненными в конфигурации, загруженными в функцию.

Вам также следует рассмотреть возможность использования наследования шаблонов, если на многих шаблонах будут отображаться одни и те же данные, тогда у вас могут быть методы, которые загружают фрагменты контекста, связанные с определенными базовыми шаблонами.

0 голосов
/ 03 мая 2011

Вы можете создать общий шаблон и использовать include , чтобы загрузить его в основной шаблон.Затем в общем шаблоне вы можете загрузить и вызвать пользовательский шаблонный тег , который создает контекстную переменную и отображает ее как обычно.

В качестве альтернативы, вы можете создать пользовательский контекстный процессор , который автоматически загружает данные в экземпляр контекста и затем отображает их как обычно в общем шаблоне.

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