django中是否有默认模板变量列表?

时间:2013-12-03 23:10:43

标签: python django django-templates django-views django-context

我注意到django模板已经传递了某些变量而不必发送任何数据。例如,可以调用'user'变量,而无需在渲染时向模板发送任何“用户”数据。

在某处我可以找到这些“默认变量”的列表吗?

2 个答案:

答案 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