【发布时间】:2012-01-30 02:15:00
【问题描述】:
我有一个需要登录所有页面的私人网站。当用户去编辑记录时,我不想锁定记录。我想为其他人保留记录。我设计了一个系统,使用 dajax/dajaxice 对 django 进行 AJAX 调用,以获取最新的人员和编辑日期时间以供记录。如果当前用户没有进行最近的编辑,则会有一个警告框通知用户自从他们打开记录以来另一个人进行了编辑,他们应该刷新页面以获取最新版本的数据。
这一切都很好,非常适合我们的情况。我有一个会话超时,超时时会将用户发送到登录提示。如果用户离开页面并离开计算机,我们希望保护敏感数据。这也很完美。
我的问题是,当AJAX调用检查数据的版本时,看它是否改变,它也保存了会话,所以无论他们在页面上多久,会话都不会超时无人看管。
视图中有没有办法绕过 SESSION_SAVE_ON_EVERY_REQUEST,这样只有这个请求不会触发保存。我知道我可以在每个 OTHER 视图中手动保存会话,但这似乎是错误的做法。我想我可以编写中间件来检查请求的视图,如果不是这个视图,则只保存会话,但我也不确定这是否是最好的解决方案。
有什么建议吗?
提前致谢。
【问题讨论】:
标签: django session django-views django-middleware django-settings