это - довольно основной вопрос (я плохо знаком с Django), но я испытываю затруднения с помощью переменного набора, по моему мнению, в моем шаблоне. Если я инициализирую строку или список в моем представлении (т.е. h = "привет") и затем пытаюсь назвать его в шаблоне:
{{ h }}
там ни не производится, ни ошибки. Точно так же, если я пытаюсь использовать переменную в своем шаблоне, который не существует:
{{ asdfdsadf }}
нет снова никакой ошибки, о которой сообщают. Действительно ли это нормально? И как я могу использовать свои переменные в моих шаблонах.Спасибо!
Для того чтобы иметь доступ к переменной в шаблоне, она должна быть в контексте, используемом для рендеринга этого шаблона. Я предполагаю, что вы не передаете контекстный словарь шаблону при его рендеринге.
http://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render-to-response
"Словарь", на который там ссылаются, это словарь, содержащий все переменные, которые вы хотите иметь доступными в контексте. Например:
return render_to_response('your_template.html', {'h': h})
Что касается ошибки "нет ошибки"... Это установка по умолчанию для недопустимой переменной шаблона. Вы можете изменить это в настройках проекта, если хотите.
http://docs.djangoproject.com/en/dev/ref/settings/#template-string-if-invalid
Да! Это нормально. Такие ошибки в шаблонах автоматически завершаются ошибкой, и этого ожидают в Django.
для правильной визуализации шаблона используйте render_to_response ('your_template.html', {'h': h})
(есть также неприятный ярлык render_to_response ('your_template.html', locals ( ))
, если ваш контекстный словарь очень большой)
вот некоторые пояснения с примерами: http://www.djangobook.com/en/beta/chapter04/ (раздел 'Насколько неверно переменные обрабатываются ')