在模板中使用Django视图变量

时间:2010-06-16 18:51:32

标签: python django templates views

这是一个相当基本的问题(我是Django的新手)但是我在模板中的视图中使用变量集时遇到了麻烦。如果我在视图中初始化一个字符串或列表(即h =“hello”),然后尝试在模板中调用它:
{{ h }}
没有输出也没有错误。同样,如果我尝试在我的模板中使用不存在的变量:

{{ asdfdsadf }}

再次没有报告错误。这是正常的吗?如何在模板中使用我的变量。谢谢!

3 个答案:

答案 0 :(得分:24)

为了能够访问模板中的变量,它需要位于用于呈现该模板的上下文中。我猜你在渲染时没有将上下文字典传递给模板。

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

答案 1 :(得分:4)

您也可以使用

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

请参阅https://docs.djangoproject.com/es/1.9/topics/http/shortcuts/

上的最新手册

答案 2 :(得分:3)

是的!这个是正常的。模板中的这些错误无声地失败,这在Django中是可以预期的。

正确呈现模板使用render_to_response('your_template.html', {'h':h})(如果您的上下文字典非常大,还有一个讨厌的快捷方式render_to_response('your_template.html', locals())

以下是对示例的一些解释:http://www.djangobook.com/en/beta/chapter04/(“如何处理无效变量”部分