Ваши локальные переменные просмотра не видны в ваших шаблонах по умолчанию.Вы должны передать их явно в контекстном словаре.Обычно вы делаете это в render_to_response
.
Пример:
def index(request):
# a local variable
region = "sanriku"
# render_to_response takes a template file name as the first argument
# and optionally some more parameters, such as a context dictionary,
# that holds your variables, which will be accessible in this view.
# Here, e.g. the variable {{ region }} will be accessible and will print
# just "sanriku".
return render_to_response("index.html", {"region" : region})
В Django 1.3 появился новый ярлык render
:
render () аналогичен вызову render_to_response () с аргументом context_instance, который вызывает использование RequestContext.
Ярлык для любого параметра запроса GETбыть:
{{ request.GET.q }}
, если у вас включен обработчик контекста запроса .
Только для целей разработки: если вы хотите сохранить некоторые нажатия клавиш во время разработки, вы можете добавитьвсе локальные переменные одновременно с помощью функции locals()
, которая возвращает словарь, представляющий текущую таблицу локальных символов .Таким образом, самый плотный способ получить доступ ко всем локальным переменным в вашем шаблоне, а также ко всем данным, которые содержит RequestContext , вы можете написать:
# Django 1.3
return render("template.html", **locals())
# Pre Django 1.3
return render("template.html", **locals(),
context_instance=RequestContext(request))