django在线人数

时间:2017-07-07 19:46:35

标签: python django python-2.7 django-views

我有一个网站,我想在我的网站上找到许多在线用户(所有用户都登录到他们的帐户): 当他们离线或关闭页面时,在线用户数量会更新: 我该怎么做?有没有来做这件事?

1 个答案:

答案 0 :(得分:1)

您可以将is_online BooleanField添加到您的用户模型,并为您的用户模型创建自己的自定义authenticate backends,在验证后将is_online设置为true。< / p>

当用户关闭网页时,您可以拥有一个事件监听器来发出Ajax请求,然后您将在DB中将用户is_online列设置为false并将用户注销。

如果您不想从会话中删除用户,则可能需要在其他位置使用其他逻辑,以便在返回网站时将该属性设置为true。

// OR
window.addEventListener("beforeunload", function(e){
   // Do something
}, false);

然后,您可以通过model.objects.filter(is_online=True)找到您的在线用户,也可以在模型本身上创建一个自定义方法,该方法可以包含其他业务逻辑,或者可能发送电子邮件或其他内容。