从django的文档来看,我的印象是:
request.session.set_expiry(300)
从一个角度来看,这会导致会话在5分钟后过期;但是,这不是我在django trunk中遇到的行为。如果我从一个视图调用此方法,并浏览到其他不调用此方法的视图,则会话将在5分钟后过期。我所期望的行为是在5分钟不活动后才过期,而不是在过期前再次调用set_expiry。
我的问题是我真的需要在每个视图中调用set_expiry吗?如果是的话,是否有一些可能有帮助的装潢师?我无法想象这不是设计的一部分。
谢谢,
皮特
Tags:
作为这些方法的作者,我可以看到文档对此不是很清楚。您的意见是正确的:只有导致会话更改的请求才被视为“活动”。
您可以使用^{} 设置来获得您所追求的行为(这显然会导致会话必须保存每个请求)。
注意:它将用最新的到期日期更新现有会话记录。
一个简单的中间件可能比在每个视图中设置它要好。这是我用过的。
这取决于在配置中设置的
SESSION_EXPIRY
。它的格式与request.session.set_expiry
相同。MIDDLEWARE_CLASSES
定义时应记住以下顺序:如果
django.contrib.sessions
默认情况下考虑到这个设置,那就太好了。相关问题 更多 >
编程相关推荐