2

我正在尝试跟踪用户 - 无需登录。为此,我尝试使用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没有用户登录的情况下进行管理?

4

1 回答 1

8

session默认行为是仅在您访问或修改dict-like 对象中的键时才填充会话。

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

身份验证中间件与会话无关;默认情况下,django 支持匿名会话。

于 2012-09-04T05:18:38.057 回答