Django:啥时候设置 sessionid cookie? [是不是默认可用? ]
Posted
技术标签:
【中文标题】Django:啥时候设置 sessionid cookie? [是不是默认可用? ]【英文标题】:Django : When is sessionid cookie set ? [ Is it available by default ? ]Django:什么时候设置 sessionid cookie? [是否默认可用? ] 【发布时间】:2012-08-28 17:41:39 【问题描述】:我正在尝试跟踪用户 - 无需登录。为此,我尝试使用 sessionid
或 django 会话。
查看:
# Associating data with sessionid
ob = MyModel(session_key=request.session.session_key, data='abc')
ob.save()
目的是为每个浏览器会话保存特定数据。
引发错误:
# session_key not found
我检查了浏览器上的cookie,只有csrftoken
。
sessionid
不在 cookie 列表中。
我假设无论如何都会维护sessionid
?但似乎并非如此。
那么,sessionid
是什么时候创建的?如何在没有用户登录的情况下管理session
?
【问题讨论】:
【参考方案1】:默认行为是仅在您访问或修改session
dict-like 对象中的键时才填充会话。
为避免这种行为,请在您的 settings.py
文件中将 SESSION_SAVE_EVERY_REQUEST
设置为 True
。即使您没有修改会话对象,这也可以确保在每个请求上都保存一个会话。
身份验证中间件与会话无关;默认情况下,django 支持匿名会话。
【讨论】:
以上是关于Django:啥时候设置 sessionid cookie? [是不是默认可用? ]的主要内容,如果未能解决你的问题,请参考以下文章
Django:如何在不使用 SESSION_SAVE_EVERY_REQUEST 的情况下为 AnonymousUser 设置 sessionid cookie
django form (something about cookie and sessionid)