Не удалось получить пользовательский контекстный процессор для вызова - PullRequest
8 голосов
/ 27 февраля 2010

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


В моем файле settings.py у меня есть

TEMPLATE_CONTEXT_PROCESSOR = (
    'django.contrib.auth.context_processors.auth',
    'mysite.accounts.context_processors.user_menu',
)

В подмодуле счетов у меня есть context_processors.py со следующим, на данный момент:

def user_menu(request):
    return {'user_menu':'Hello World'}

На моей странице шаблона у меня есть следующее:

{% if user.is_authenticated %}
Menu
{{user_menu}}
{% endif %}

Вызывающий вид выглядит следующим образом:

def profile(request):
    return render_to_response('accounts/profile.html',context_instance=RequestContext(request))

Однако я не могу заставить {{user_menu}} что-либо отобразить на странице, я знаю, что пользователь прошел проверку подлинности, так как другие разделы шаблона с аналогичными проверками отображаются правильно. Я что-то здесь упускаю? Пожалуйста помоги Спасибо

Редактировать: Спасибо, Бен, Дэниел, я исправил (S) в TEMPLATE_CONTEXT_PROCESSOR, однако теперь у Джанго проблемы с разрешением модуля, и я получаю следующее сообщение

Error importing request processor module django.contrib.auth.context_processors: "No module named context_processors"

ОБНОВЛЕНИЕ: Я исправил это, изменив путь на django.core.context_processors.auth Похоже, что модули были перемещены вокруг

1 Ответ

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

Имя настройки должно быть TEMPLATE_CONTEXT_PROCESSORS, с символом S.

...