出于某种原因,{{ request.session.session_key }}在模板中进行操作会给我一个None价值.经过一番搜索,发现这篇文章提到了使用,request.session._session_id但在模板中使用它给了我一个错误:
变量和属性不能以下划线开头:'request.session._session_key'
我对Django中会话的理解是,当用户加载页面(任何页面)时,即使他是匿名的,也会将session_id分配给该特定会话.我的理解是错的吗?这是应该使用的 地方[SESSION_SAVE_EVERY_REQUEST]吗?
我正在使用数据库后端作为我的会话存储.
sup*_*er9 31
回答我自己的问题:
仍然可以使用访问会话密钥{{ request.session.session_key }}.但是,文档提到只有在保存/修改会话时才会创建会话.
默认情况下,Django仅在会话被修改时保存到会话数据库 - 即,如果已分配或删除任何字典值:
所以在我的情况下,会话没有被设置,因为我没有操纵它.使用SESSION_SAVE_EVERY_REQUEST将确实解决全球问题.在我的用例中,我只需要在特定的视图函数上,所以这是一个简单的事情:
if not request.session.get('has_session'):
request.session['has_session'] = True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4962 次 |
| 最近记录: |