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

pjngdqdw  于 2023-04-13  发布在  Go
关注(0)|答案(3)|浏览(101)

我注意到django模板已经有一些变量传递给它,而不需要发送任何数据。例如,'user'变量可以在渲染时调用,而不需要发送任何'user'数据给模板。
有没有什么地方可以找到这些“默认变量”的列表?

kdfy810k

kdfy810k1#

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"

o2rvlv0m

o2rvlv0m2#

Django自带了一个特殊的Context类django.template.RequestContext,它的行为与普通的django.template.Context略有不同。第一个区别是它将HttpRequest作为第一个参数。查看文档以获得更清晰的Idea。
https://docs.djangoproject.com/en/1.6/ref/templates/api/#subclassing-context-requestcontext

ykejflvf

ykejflvf3#

现在在Django 4.1中,默认的上下文处理器和模板变量在www.example.com上列出https://docs.djangoproject.com/en/4.1/ref/templates/api/#context-processors
只是一个快速的参考:
| 上下文处理器|变数|
| --------------|--------------|
| django.contrib.auth.context_processors.auth|用户烫发|
| django.template.context_processors.debug| debugging sql_queries|
| django.template.context_processors.i18n|语言语言_BIDI语言_代码|
| django.template.context_processors.media|媒体_URL|
| django.template.context_processors.static|静态URL|
| django.template.context_processors.csrf|csrf_token|
| django.template.context_processors.request|请求|
| django.template.context_processors.tz|时区|
| django.contrib.messages.context_processors.messages|信息DEFAULT_MESSAGE_LEVELS|

相关问题