0

当我学习教程时,我遇到了这个问题:
我有一个模板,'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 %}
4

2 回答 2

1

user即使您没有在视图响应中隐式传递它,您也可以访问该对象。默认情况下,它是anonymous user, 直到用户登录并验证自己

于 2013-10-11T10:45:57.910 回答
0

您可能拥有将用户变量添加到上下文的身份验证上下文处理器和/或中间件集

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
)

MIDDLEWARE_CLASSES = (
    "django.contrib.auth.middleware.AuthenticationMiddleware",
)
于 2013-10-11T09:51:49.933 回答