У меня есть приложение для чата в Интернете, сделанное в Django. Пользователи могут создавать группы, в которых могут собираться другие пользователи, оставлять сообщения (replies
) и фотографии. URL каждый пользователь посещает доступ к группе является:Tricky logic для расчета уникальных недавних посетителей в приложении Django
url(r'^group/(?P<pk>\d+)/reply/$', auth(GroupView.as_view()), name="group_reply"),
где pk
является group.pk
.
Мой вопрос: Как я могу получить список (или набор) всех пользователей, которые обратились к URL определенной группы за последние 5 минут? По сути, я пытаюсь рассчитать число уникальных последних посетителей для каждой группы. Кажется, я не могу окунуться в голову, как это сделать, хотя я думаю, что информация о сеансах могла бы помочь? (Я использую django user_sessions в этом проекте, который
«делает сеанс объекты первого класса гражданин, как и другие объекты ОРМ»
).
В случае необходимости, модель позади группы:
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
.
Чтобы уточнить, я хочу измерять * уникальные посещения *, поэтому я должен использовать 'distinct ('user')' в запросе модели, которую вы упомянули в своем ответе? –