"刷新" Django会话变量,以避免会话超时?

时间:2014-04-03 15:53:58

标签: django session django-views session-timeout

我有一个多页Django注册过程,用户可以在其中执行以下步骤:

  1. 创建帐户(用户名,密码)
  2. 创建个人资料
  3. 上传照片
  4. 查看并批准/更改个人资料和照片
  5. 将用户名和用户ID传递给付款处理方
  6. 从付款处理方收到“付款确定或付款不正常”信号
  7. 如果“付款正常”,则登录用户并显示网站的“主页”。
  8. 在上面的步骤1中,用户的ID和一些其他信息存储在会话中。然后在步骤2到4中必要时检查它们。用户ID和用户名也将在步骤5中传递给支付处理器。我正在考虑将会话超时时间设置为30分钟或1小时。这是我的问题。当用户获取上述每个页面时,我应该阅读并重新分配会话变量,以帮助用户避免会话超时吗? Django documentation表示Django仅在会话被修改时保存会话(即,当已经分配或删除任何字典值时)。我想如果我在用户的会话从一个页面移动到另一个页面时“刷新”该会话,那么它们将不太可能被超时,从而将体验更顺畅的注册过程。

    有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:6)

SESSION_SAVE_EVERY_REQUEST设置可以保存会话并为每个请求发送会话cookie,有效地将会话转换为滑动到期会话(顺便说一下,它是您想要实现的广泛名称)

有关详细信息,请参阅session docs