django中的模板如何获取用户对象?

django中的模板如何获取用户对象?,django,django-templates,django-views,Django,Django Templates,Django Views,模板如何获取用户对象 换句话说,在渲染过程中将用户对象传递给模板的过程到底是什么 在模板中还可以访问哪些内容 使用上下文处理器,您可以访问模板中的auth.User实例。 如果TEMPLATE\u CONTEXT\u PROCESSORS包含此处理器,则每个 RequestContext将包含以下变量: 用户–代表当前登录用户的身份验证用户实例 (或匿名用户实例,如果客户端未登录) 只需在TEMPLATE\u context\u processors设置中定义django.contrib.aut

模板如何获取用户对象

换句话说,在渲染过程中将用户对象传递给模板的过程到底是什么

在模板中还可以访问哪些内容

使用上下文处理器,您可以访问模板中的
auth.User
实例。

如果
TEMPLATE\u CONTEXT\u PROCESSORS
包含此处理器,则每个
RequestContext
将包含以下变量:

用户
–代表当前登录用户的
身份验证用户
实例 (或匿名用户实例,如果客户端未登录)

只需在
TEMPLATE\u context\u processors
设置中定义
django.contrib.auth.context\u processors.auth
,然后在模板中使用
{{user}

TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth", # define this in your settings
....
)
模板上下文处理器:

它是一个可调用的元组,用于填充中的上下文 请求上下文。这些可调用项将请求对象作为它们的 参数,并返回要合并到 上下文

默认情况下,以下上下文处理器由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")
模板中存在哪些变量?

通过
template\u CONTEXT\u PROCESSORS
设置,您可以知道所有模板中都存在哪些变量。其中定义的每个上下文处理器都在上下文中包含一些变量。例如,包含包含
user
对象的
user
变量,上下文处理器在模板中包含
MEDIA\u URL
变量

TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth", # define this in your settings
....
)
要检查使用不同上下文处理器在模板中可访问的所有变量,请参阅

访问上下文中的
请求
对象

您可以添加到
settings.py中的
TEMPLATE\u CONTEXT\u PROCESSORS
,并访问上下文中的
request
对象

您还可以通过
{{request.user}}
访问当前用户。您必须显式添加此设置,因为默认情况下它不存在

在您的设置中将
.request
上下文处理器添加到
模板\u上下文\u处理器

TEMPLATE_CONTEXT_PROCESSORS = (
    ....
    `django.core.context_processors.request`,
    )
编辑:(谢谢)

另外,在
中间件类中添加要在
请求
对象中设置的
用户
属性的设置。它已从中的默认
中间件\u类
设置中删除

类身份验证中间件
将代表当前登录用户的
user
属性添加到每个传入的
HttpRequest
对象

此外,还应该添加
中间件类
设置,将当前用户与请求联系起来。Django对此提供了一个很好的解释。