我有一个在Django中制作的基于网络的实时聊天应用程序。用户可以组建其他用户可以聚集的组,留下消息(称为replies
)和照片。每个用户访问以访问组的URL是:
url(r'^group/(?P<pk>\d+)/reply/$', auth(GroupView.as_view()), name="group_reply"),
其中pk
为group.pk
。
我的问题是:如何获取在过去5分钟内访问某个群组网址的所有不同用户的列表(或设置)?基本上,我是&#39;我试图计算每个组的唯一最近访问者的数量。我似乎无法解决如何做到这一点,虽然我猜会话信息可以帮助吗? (我在这个项目中使用django user_sessions,
&#34;使会话对象成为其他ORM对象的第一类公民&#34;
)。
如果需要,组后面的模型是:
class Group(models.Model):
topic = models.TextField(validators=[MaxLengthValidator(200)], null=True)
rules = models.TextField(validators=[MaxLengthValidator(500)], null=True)
owner = models.ForeignKey(User)
private = models.CharField(max_length=50, default=0)
category = models.CharField(choices=TYPE, default=1, max_length=25)
created_at = models.DateTimeField(auto_now_add=True)
在每个组中发布回复的模型是:
class Reply(models.Model):
text = models.TextField(validators=[MaxLengthValidator(500)])
which_group = models.ForeignKey(Group)
writer = models.ForeignKey(User)
submitted_on = models.DateTimeField(auto_now_add=True)
image = models.ImageField(upload_to=upload_pic_to_location, null=True, blank=True )
User
是一个香草django.contrib.auth
user
。
答案 0 :(得分:0)
您没有收集所需数据的任何内容。如果要记录对页面的访问,则需要构建一个模型来执行此操作;一个简单的FK到用户(对于访问者)和组(对于被访问的组),加上一个时间戳,应该就足够了。然后,每次用户访问时,GroupView都可以在该表中创建一个条目。