当我更改主页视图时:
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 %}
答案 0 :(得分:4)
添加RequestContext根本不会改变用户的登录状态。关于cookie的问题完全没有意义。 RequestContext的作用是使模板上下文中的某些变量可访问 - 其中,假设您启用了auth
上下文处理器,则为user
变量。
如果没有RequestContext,用户仍然会登录,但是您没有将user
变量传递给上下文,因此您的if
语句的计算结果为False。与用户的实际状态完全无关。
答案 1 :(得分:0)
如果您从context_instance=RequestContext(request)
中定义的settings.py
中添加user
上下文,则会将{{1}}添加到模板中,在您的情况下,这包括{{1}中的当前用户对象}。
如果删除它,该变量不存在,但在模板内部不会引发异常,但会呈现未登录用户的HTML!
用户信息存储在使用Cookie的context processors中。