2010-07-18 3 views
0

Возможно ли передать более одного аргумента в обработчик контекста в Django? Другими словами, в дополнение к объекту HttpRequest, я хотел бы передать один или несколько дополнительных аргументов?Возможно передать более одного аргумента в контекстный процессор в Django?

+0

пройти от где? Каков ваш желаемый прецедент? – eruciform

+0

У меня есть панель поиска, которая отображается на каждой странице. Мой сайт разделен на, например, 4 страны, которые имеют один и тот же тип страниц. Панель поиска должна выглядеть одинаково для разных стран, за исключением отображения различных навигационных ссылок по конкретной стране. Поэтому я хотел бы передать страну в свой «исследовательский контекстный процессор», чтобы отображать разные ссылки в зависимости от того, в какой стране в настоящее время осуществляется навигация. – sizeight

+0

либо используют тег шаблона, либо заполняют переменную в шаблоне, используя данные из представления, или сохраняют его в сеансе и получают доступ к нему внутри объекта запроса внутри контекстного процессора. – eruciform

ответ

0

Вы можете посмотреть в пользовательские теги:

http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#howto-custom-template-tags

Убедитесь, что модуль теги шаблонов находится в templatetags подкаталоге загруженного модуля. То есть если у вас есть модуль «Foo» в вашем INSTALLED_APPS, убедитесь, что там, где Foo находится, есть:

foo/templatetags/blurf.py 

, содержащий теги и фильтры, которые вы хотите. Тогда вы можете:

{% load blurf %} 

в шаблоне, и если blurf имеет grok тег с двумя аргументами определена, то вы можете:

{% grok 1 2 %} 

в этом шаблоне.

+0

@sizeight: в итоге вы использовали templatetags? – eruciform

2

Храните любые переменные, которые вы хотите в сеансе. Затем вы можете получить к нему доступ через запрос.

+0

Это была моя мысль. Он прост и не требует изменения. –

Смежные вопросы