1

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

有没有什么地方可以找到这些“默认变量”的列表?

4

2 回答 2

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"

于 2013-12-03T23:15:51.007 回答
2

Django 带有一个特殊的 Context 类,django.template.RequestContext,它的行为与普通的 django.template.Context 略有不同。第一个区别是它将 HttpRequest 作为其第一个参数。浏览文档以获得更清晰的想法。

https://docs.djangoproject.com/en/1.6/ref/templates/api/#subclassing-context-requestcontext

于 2013-12-04T08:24:30.277 回答