Django会话到期了吗?

sly*_*ete 13 python django

从django的文档中,我的印象是:

request.session.set_expiry(300)
Run Code Online (Sandbox Code Playgroud)

从一个视图会导致会话在五分钟不活动后过期; 然而,这不是我在django trunk中遇到的行为.如果我从一个视图调用此方法,并浏览到不调用该方法的其他视图,则会话将在五分钟后到期.我期待的行为仅在五分钟不活动后才过期,而不是仅仅在到期之前再次调用set_expiry.

那么我的问题是我真的需要在每个视图中调用set_expiry吗?如果是这样,是否存在一些可能有帮助的装饰器?我无法想象这不是贡献的一部分.

谢谢,皮特

Smi*_*ris 27

作为这些方法的作者,我可以看到文档对此并不十分清楚.您的观察结果是正确的:只有导致会话被更改的请求才被视为"活动".

您可以使用该SESSION_SAVE_EVERY_REQUEST设置来获取您所追求的行为(必须以每次请求保存会话的明显代价).

注意:它将使用最新的到期日更新现有会话记录.

  • 同意。想要开票吗?;) (2认同)