我注意到django模板已经传递了某些变量而不必发送任何数据。例如,可以调用'user'变量,而无需在渲染时向模板发送任何“用户”数据。
在某处我可以找到这些“默认变量”的列表吗?
答案 0 :(得分:6)
TEMPLATE_CONTEXT_PROCESSORS
设置默认包含以下值(在Django 1.6中):
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.tz",
"django.contrib.messages.context_processors.messages"
以上是上下文处理器列表。上下文处理器是一个函数,可以将更多变量添加到传递给每个模板的上下文中。
例如,变量user
由"django.contrib.auth.context_processors.auth"
添加。
答案 1 :(得分:2)
Django附带了一个特殊的Context类django.template.RequestContext,其作用与普通的django.template.Context略有不同。第一个区别是它需要一个HttpRequest作为它的第一个参数。浏览文档以获得更清晰的想法。
https://docs.djangoproject.com/en/1.6/ref/templates/api/#subclassing-context-requestcontext