Используя Django просматривают переменные в шаблонах

это - довольно основной вопрос (я плохо знаком с Django), но я испытываю затруднения с помощью переменного набора, по моему мнению, в моем шаблоне. Если я инициализирую строку или список в моем представлении (т.е. h = "привет") и затем пытаюсь назвать его в шаблоне:
{{ h }}
там ни не производится, ни ошибки. Точно так же, если я пытаюсь использовать переменную в своем шаблоне, который не существует:

{{ asdfdsadf }}

нет снова никакой ошибки, о которой сообщают. Действительно ли это нормально? И как я могу использовать свои переменные в моих шаблонах.Спасибо!

14
задан Anon 16 June 2010 в 18:51
поделиться

2 ответа

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

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

24
ответ дан 1 December 2019 в 08:52
поделиться

Да! Это нормально. Такие ошибки в шаблонах автоматически завершаются ошибкой, и этого ожидают в Django.

для правильной визуализации шаблона используйте render_to_response ('your_template.html', {'h': h}) (есть также неприятный ярлык render_to_response ('your_template.html', locals ( )) , если ваш контекстный словарь очень большой)

вот некоторые пояснения с примерами: http://www.djangobook.com/en/beta/chapter04/ (раздел 'Насколько неверно переменные обрабатываются ')

3
ответ дан 1 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: