【发布时间】:2018-02-05 18:35:25
【问题描述】:
我正在处理后端的第三方授权问题并遇到奇怪的会话存储行为。
当我检测到第三方会话授权已失效时,我重新进行身份验证并尝试更新会话中的数据,这不起作用。
问题是,在我从会话中删除密钥后,当我获得更新的信息后尝试替换它时,我得到了一个 KeyError。
def my_session_thing(invalidate=False):
if invalidate:
del self.request.session['my_session_dict']
self.request.session.modified = True
my_session_dict = self.request.session.get('my_session_dict')
if my_session_dict is not None:
self.current_session_dict = my_session_dict
return
my_new_session_dict = {
'foo': 'bar'
}
# ** Why does this raise a KeyError when invalidate is True? **
self.request.session['my_session_dict'] = my_new_session_dict
我目前正在探索此策略的替代方案,但我发现此行为与“如何使用会话”文档描述的类似字典的行为相矛盾,因此值得发布。
【问题讨论】:
-
请分享 KeyError 消息...不清楚错误发生在哪里
标签: python django session dictionary keyerror