Django中的会话密钥使用一次后如何删除?

Django中的会话密钥使用一次后如何删除?,django,django-views,Django,Django Views,我有两种看法 view1通过会话密钥将错误消息传递给view2 渲染view2后如何删除关键点?我只需要一次:从view1重定向到view2。我不需要在刷新我的网页后显示该消息。我认为python一旦到达return 我正在考虑设置一个过期时间戳,但如果应用程序真的需要加载那么长的时间(我们使用Django做一些服务器工作),我需要确保它至少存在10-20秒?所以时间并不是那么有希望 谢谢。您可以像其他字典一样从会话中删除密钥 del request.session['your key'] 根

我有两种看法

view1通过会话密钥将错误消息传递给view2

渲染view2后如何删除关键点?我只需要一次:从view1重定向到view2。我不需要在刷新我的网页后显示该消息。我认为python一旦到达
return

我正在考虑设置一个过期时间戳,但如果应用程序真的需要加载那么长的时间(我们使用Django做一些服务器工作),我需要确保它至少存在10-20秒?所以时间并不是那么有希望


谢谢。

您可以像其他字典一样从会话中删除密钥

del request.session['your key']
根据您的某些设置,您可能需要将会话标记为已修改才能保存

request.session.modified = True

您还可以从会话中弹出密钥。您可以将键设置为变量,同时将其删除:

key_variable = request.session.pop('your key')

很抱歉我把整个事情弄得这么复杂。我只是把它保存到本地变量,就这样完成了。删除它就行了。谢谢我想得太多了。如果您
del
与会话直接关联的键,而不是像
request.session['parent_key']['child']
那样嵌套,则不需要设置
request.session.modified=True
,也可以使用默认值,与
get
类似,这是否需要随后设置
request.session.modified=True
,还是不设置?@HassanBaig no在这种情况下,不需要设置
request.session.modified=True
。此外,最好设置
request.session.pop('key',None)
在某些情况下,这不会删除密钥。虽然此代码片段可能会解决问题,但确实有助于提高文章质量。请记住,您将在将来为读者回答这个问题,而这些人可能不知道您的代码建议的原因。除了@Abhishek的反馈之外,了解这种方法何时以及为什么会比八年前被接受的答案更受欢迎是非常有用的。这样做是否有好处,例如Django的最新版本允许?
if "uid" in self.request.session.keys():
    del self.request.session["uid"]