Почему мой обработчик контекста шаблона django не вызывается - PullRequest
5 голосов
/ 06 октября 2009

Я, должно быть, что-то упустил при настройке пользовательского контекста шаблона, так как он никогда не вызывается.

В настройках:

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django_authopenid.context_processors.authopenid",
    "web.context_processors.my_hat",
)

в web / context_processors.py

from libs.utils import get_hat, get_project, my_hats

print 'heloooo'

def my_hat(request):
    """Insert some additional information into the template context
    """
     
    import pdb
    pdb.set_trace()

    print 'hiiiiiiii'

    return {'hat': get_hat(request),
        'project': get_project(request),
        }

ничего не выводится, и django обрабатывает представление и отображает шаблон, даже не нажимая на это. Что я пропустил!?

Спасибо Инсин, биты, которые я пропустил:

В view.py

return render_to_response(template, {
        'tasks': tasks,
    },
    context_instance=RequestContext(request))

В шаблоне:

  My current hat is {{hat}}

1 Ответ

15 голосов
/ 07 октября 2009

Вы не забыли использовать RequestContext при визуализации шаблона?

Начиная с Django 1.3, появилась новая функция быстрого доступа render, которая по умолчанию использует RequestContext:

return render(request, template, {
    'tasks': tasks,
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...