Использование Django для просмотра переменных внутри шаблонов - PullRequest
13 голосов
/ 16 июня 2010

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

{{ asdfdsadf }}

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

Ответы [ 3 ]

24 голосов
/ 16 июня 2010

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

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

4 голосов
/ 20 июля 2016

Вы также можете использовать

return render(request, 'your_template.html', {'h':h, 'var1':var1})

См. Последнее руководство по https://docs.djangoproject.com/es/1.9/topics/http/shortcuts/

3 голосов
/ 16 июня 2010

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

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

Вот некоторые пояснения с примерами: http://www.djangobook.com/en/beta/chapter04/ (раздел «Как обрабатываются недопустимые переменные»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...