在Django中,我的request.session没有保留...有人知道为什么吗?

5 投票
2 回答
4815 浏览
提问于 2025-04-15 18:53

在一个视图中,我设置了:

request.session.set_expiry(999)
request.session['test'] = '123'

在另一个视图中,我做了:

print request.session['test']

但是找不到它了。(出错)

其实很简单,我只有两个视图。

看起来一旦我离开一个视图再回来,它就消失了!这是为什么呢?

2 个回答

1

你是不是在某个地方把会话(session)直接设置成了一个空的字典呢?

18

这可能和这个有关吧?我刚在 http://code.djangoproject.com/wiki/NewbieMistakes 找到的。

在会话中添加列表的内容不起作用

问题

如果你在会话中有一个列表,往里面添加内容的操作不会被保存到这个对象里。

解决办法

先把列表从会话对象中复制出来,添加内容后再把它复制回去:

sessionlist = request.session['my_list']
sessionlist.append(new_object)
request.session['my_list'] = sessionlist

撰写回答