如何在我的Django应用程序中获取在过去5分钟内至少有1个会话的用户

2024-10-06 14:31:52 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用Django auth系统在Django模板中显示在前5分钟内在我的Django web应用程序中有会话的所有注册用户?所谓“用户”,我指的是普通的django.contrib.authuser。我将访问他们的用户名并填充一个列表,显示所有最近看到的用户

既然Django为一个user发送的每个请求创建HttpResponse对象,我猜一定有办法填充一个最近看到的用户列表奖励:性能也是关键,因此我对优化此请求的方法持开放态度(这是我的应用程序中的一个流行功能,用户的请求“其在线”非常频繁,每天在高峰时间,请求队列往往会降低性能)

背景:我的应用程序适用于资源不足地区的用户;它是使用django1.5python2.7构建的。大多数用户在功能手机上使用它,默认浏览器为Opera Mini(该浏览器通过代理服务器获取所有内容,并将网页重新格式化为更适合小屏幕的格式)


Tags: django用户功能auth模板web应用程序列表
1条回答
网友
1楼 · 发布于 2024-10-06 14:31:52

我建议你调查一下django-user-sessions。这似乎提供了您想要的功能,然后您可以执行以下操作:

from datetime import timedelta

from django.utils import timezone
from user_sessions.models import Session


recent_users = Session.objects.filter(last_activity__gte=(timezone.now()-timedelta(minutes=5))).only('user').distinct('user')

这个代码示例是即兴的,所以我不能保证它会工作,但它应该提供一个很好的起点

相关问题 更多 >