Я приехал в точку, куда я должен передать определенные переменные всем моим представлениям (главным образом пользовательские переменные типа аутентификации).
Мне сказали, пишущий, что мой собственный процессор контекста был лучшим способом сделать это, но у меня есть некоторые проблемы.
Мой файл настроек похож на это
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.contrib.messages.context_processors.messages",
"sandbox.context_processors.say_hello",
)
Как Вы видите, у меня есть модуль, названный 'context_processors' и функцией в названном 'say_hello'.
Который похож
def say_hello(request):
return {
'say_hello':"Hello",
}
Действительно ли я прав предположить, что я могу теперь сделать следующее в рамках своих представлений?
{{ say_hello }}
Прямо сейчас это не представляет ни к чему в моем шаблоне.
Мое представление похоже
from django.shortcuts import render_to_response
def test(request):
return render_to_response("test.html")
Написанный вами контекстный процессор должен работать. Проблема в твоем видении.
Вы уверены, что ваше представление визуализируется с помощью RequestContext
?
Например:
def test_view(request):
return render_to_response('template.html')
Представленное выше представление не будет использовать контекстные процессоры, перечисленные в TEMPLATE_CONTEXT_PROCESSORS
. Убедитесь, что вы указываете RequestContext
следующим образом:
def test_view(request):
return render_to_response('template.html', context_instance=RequestContext(request))