在django管理员的变化中,我有一个很长的任务要处理。这需要几分钟的时间,所以我想做一个进度指标。我将进度存储到会话中,但是当我从不同的视图(每300 JS从JS调用计时器)读取会话时,会话不包含更新的进度(我在长任务中设置了这个过程)。在上一次长时间的任务结束时,它总是具有会话的功能。
官方文档说:“您可以在视图中的任何一点上阅读和写入request.session,您可以多次编辑它。”那它为什么不起作用?
更新:公认的答案确实回答了这个问题。但我还是不能把它应用到我的实际案件中。是的,在两个常规视图之间,它工作得很好,但是在admin的response_change和常规视图之间却不工作,因为session_key、_auth_user_id、_auth_user_hash在两个线程中都是相同的。如果您有任何提示,请留在comments.Thanks中。
Update2:将会话引擎设置为文件,修复它!为什么?这不是速度问题,因为数据库会话引擎甚至不能在调试模式下工作,在调试模式下,我需要休息几分钟…
发布于 2021-05-13 17:31:16
会话直到请求结束/服务器发送回响应时才会保存。您可以使用request.session.save() Ref:session.BaseSessionManager.save自己保存会话
https://stackoverflow.com/questions/67523230
复制相似问题