在我的部分应用程序中,我为访问者提供了一些自定义设置。 当用户加载页面时,我尝试检查请求的自定义设置,如果存在设置,我会在页面中进行自定义。
中这样做def shared_values(request):
show_help = request.session.get('show_help', True)
return {
'show_help': show_help,
}
这是完美的工作,但我有问题 - 每次,当我检查会话时django在Session表中创建新条目,如果之前不存在条目。
如何在不创建新会话的情况下查看会话?
编辑1:
然后我禁用检查会话密钥,我看到django没有为请求创建任何会话条目。
编辑上下文处理器,因此我不访问项目中的会话:
show_help = True
在不同浏览器(firefox)中打开页面
切换到第一个浏览器并检查是否出现了新的会话对象,但没有任何更改 - 只存在一个会话对象。
编辑2:
我使用django 1.4.1
答案 0 :(得分:0)
Docs:
激活
SessionMiddleware
时,每个HttpRequest
对象 - 任何Django视图函数的第一个参数 - 将有一个session
属性,这是一个类字典的对象。
因此,每次发出请求时,如果已经存在会话,则会创建会话。
应用context_processor
时,会话已存在。你不应该担心这一点。