上次见过django的用户

时间:2017-07-08 07:59:10

标签: python django python-2.7 django-views

如何在django中显示用户上次见到(在线)的时间? 是否有任何默认函数或库来导入它?

或者如果github有任何代码请告诉我

**注意:**当用户关闭页面或断开时间更新时

2 个答案:

答案 0 :(得分:1)

您应该在用户模型中继承django的AbstractBaseUser,它已经具有内置的last_login属性。实际上,在django默认身份验证模块中提供用于创建用户的AbstractBaseUser被认为是一种很好的做法。

答案 1 :(得分:0)

选项很少。

您可以在视图中添加代码以检查用户或会话ID(取决于您希望它如何工作。对于注册用户或每个用户或......)以及每次用户请求页面时,您可以在此时更新此用户在网站上处于活动状态。 但是当你需要在一个页面很少的小项目中跟踪用户时,这个选项似乎是可用的。

另一种看似更合适的选择是使用中间件。通过使用中间件,您无需在所有视图中更改代码。只需制作一个自定义中间件,一切都将用几行代码完成

您可以在此处查看此中间件的示例:

Django: How can I check the last activity time of user if user didn't log out?

Django get last user visit date

对于断开连接的部分,我认为你不能用django做很多事情。并且您无法确定用户何时关闭页面。

这里最好的选择是使用javascript代码每隔10秒运行一次并告诉django用户仍然在页面上。