当我关注教程时,我发现了这一点:
我有一个模板'base.html',我甚至没有从视图中传递'user'变量的值。
但它仍然对用户进行身份验证。我无法理解这是如何工作的:
base.html:
{% if user.is_authenticated %}
<div id='nav'>
<a href='/'/> mysite </a> |
<a href='/user/{{user.username}}/'>{{ user.username }} </a>(<a href='/logout'>logout</a>)
</div>
{% endif %}
<h1>{% block head %}{% endblock %}</h1>
{% block content %}{% endblock %}
答案 0 :(得分:1)
即使您未在视图响应中隐式传递,也可以访问user
对象。
默认情况下,它是anonymous user
,直到用户登录并验证自身
答案 1 :(得分:0)
您可能拥有auth上下文处理器和/或中间件集,它将用户变量添加到上下文
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
)
MIDDLEWARE_CLASSES = (
"django.contrib.auth.middleware.AuthenticationMiddleware",
)