Функциональность типов виджетов Wordpress в Django - PullRequest
1 голос
/ 27 марта 2011

Я работал с Джанго последние пару месяцев.Кажется, что если мне нужно какое-то новое значение в шаблоне, единственный способ сделать это - передать его напрямую через функцию представления или объект, который можно каким-то образом использовать для получения этой информации.

Что делать, если я хочу "вытянуть" информацию из шаблона?Рассмотрим следующий сценарий.У меня есть шаблон "template1", связанный с Application1.Предположим, что в одном столбце этого шаблона я хочу импортировать информацию из второго приложения «Приложение2».В настоящее время я знаю только один способ - использовать функции просмотра Application1 для извлечения этой информации из Application2.Для каждого нового приложения мне нужно изменить функцию просмотра моего Application1.Поэтому, если я хочу продолжать добавлять информацию из разных приложений (2,3,4 и т. Д.), Мне нужно будет продолжать изменять функцию просмотра Application1.Это может стать громоздким.

Итак, я хочу что-то вроде функции виджета Wordpress или функциональности типа модуля Joomla.Простой Plug and Play, который может «вытягивать» информацию из разных источников (приложений).Есть ли в Django что-то подобное?

1 Ответ

3 голосов
/ 27 марта 2011

Ах, вы столкнулись с одним из фундаментальных отличий между Django (и большинством фреймворков Python) и WordPress (и большинством фреймворков PHP). PHP имеет огромное глобальное пространство имен, к которому можно получить доступ практически из любого места в процессе создания страницы. Python, с другой стороны, нет. Многие из нас считают, что это Good Thing®.

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

Вы также можете посмотреть на {% expr ...%} . Он позволяет вырваться из «цепей» намеренно слабого движка шаблонов Django.

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