1

当我更改主页视图时:

def home(request):
    return render_to_response('homepage.html')

def home(request):
    return render_to_response('homepage.html',context_instance=RequestContext(request))

user即使我关闭网络浏览器(firefox),登录我网站的人也将始终登录

为什么context_instance=RequestContext(request)可以这样做?它使用cookies吗?

这种状态会维持多久。

谢谢

homepage.html 是:

{% if user.is_authenticated %}
    <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
    <p>Welcome, new user. Please <a href="/account/login_view">login</a></p>
{% endif %}
4

2 回答 2

3

添加 RequestContext 根本不会改变用户的登录状态。你关于cookies的问题根本没有意义。RequestContext 所做的是使某些变量在模板上下文中可访问 - 其中,假设您auth启用了上下文处理器,是一个user变量。

如果没有 RequestContext,用户仍处于登录状态,但您没有将user变量传递给上下文,因此您的if语句评估为 False。与用户的实际状态完全无关。

于 2010-12-11T22:52:38.630 回答
0

如果您从您定义的上下文处理器context_instance=RequestContext(request)中添加上下文,您将被添加到模板中,在您的情况下,这包括. 如果您删除它,则该变量不存在,但在模板内部这不会引发异常,但会呈现未登录用户的 HTML!settings.pyuser

用户信息存储在使用 cookie的会话中。

于 2010-12-11T22:54:12.810 回答