这是一个相当基本的问题(我是Django的新手)但是我在模板中的视图中使用变量集时遇到了麻烦。如果我在视图中初始化一个字符串或列表(即h =“hello”),然后尝试在模板中调用它:
{{ h }}
没有输出也没有错误。同样,如果我尝试在我的模板中使用不存在的变量:
{{ asdfdsadf }}
再次没有报告错误。这是正常的吗?如何在模板中使用我的变量。谢谢!
答案 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/(“如何处理无效变量”部分