2012-09-04 81 views
2

我想跟踪用户 - 无需登录。为此,我尝试使用sessionid或django会话。Django:sessionid cookie何时设置? [默认情况下是否可用? ]

查看:

# Associating data with sessionid 
ob = MyModel(session_key=request.session.session_key, data='abc') 
ob.save() 

目的是为了保存特定数据为每个浏览器会话。

引发错误:

# session_key not found 

我检查了Cookie的浏览器,只有csrftokensessionid不在Cookie列表中。

我认为sessionid保持不管是什么?但似乎并非如此。

那么,什么时候创建sessionid?我如何在没有用户登录的情况下管理session

回答

7

默认行为是只填充会话,如果您访问或修改session字典型对象中的键。

为避免此行为,请在您的settings.py文件中将SESSION_SAVE_EVERY_REQUEST设置为True。这确保了每个请求上都会保存会话,即使您没有修改会话对象。

认证中间件对会话没有影响;默认情况下,django支持匿名会话。

+0

很好的帮助..谢谢! –

相关问题