Джанго отслеживания последних онлайн-пользователей - PullRequest
6 голосов
/ 11 октября 2009

Есть ли способ отследить активных пользователей в django?

Я видел несколько онлайн-решений проблемы:

http://mpcabd.igeex.biz/get-online-users-in-django/

будучи одним из них. Но кажется странным изменить структуру модели просто для решения этой простой проблемы. Я хотел бы знать, есть ли какое-нибудь быстрое решение вокруг.

Поле last_login в django auth также не очень полезно, поскольку оно записывает только время, когда пользователь входит в систему, и поле не обновляется, если пользователь долгое время находился в сеансе

Ответы [ 4 ]

4 голосов
/ 11 октября 2009

Я согласен, что лучший способ сделать это - использовать профиль. Это будет иметь внешний ключ к таблице Users вместо изменения существующей таблицы.

С точки зрения того, как записывать действия пользователя, одним из шаблонов может быть написание декоратора, который упаковывает все представления, которые вы хотите записать. Декоратор просто записывает время и действие в отношении профиля соответствующего пользователя.

4 голосов
/ 12 октября 2009

Я тот, кто написал этот блог:)

Я не модифицировал модель User, я расширил ее, она такая же, как профили, но я хотел сделать так, чтобы, если вы уже определили профиль, вы все равно могли использовать мой метод.

Я думаю, что расширение модели User - лучший способ справиться с этим, я не знаю, есть ли какие-то аргументы против этого.

2 голосов
/ 11 октября 2009

Изменение аутентификации Модель пользователя, вероятно, не очень «гибкий» подход.

Простейшим способом решения этой проблемы, вероятно, было бы предоставление профиля - Django имеет встроенную поддержку для предоставления модели профиля пользователя для хранения дополнительных данных, связанных с пользователем, без необходимости изменения какой-либо из встроенных моделей.

См. Руководство по Django

Вы просто сохраните последнее активное время в профиле пользователя.

0 голосов
/ 08 сентября 2016

Попробуйте это решение:

  1. Создание модели, подобной 'profile', с использованием user.id в качестве внешнего ключа
  2. Создать вид профиля, когда пользователь входит в систему, изменить состояние из оффлайн в онлайн

    • Вы также можете использовать вид, чтобы проверить последних пользователей, вошедших в систему «X» минут
  3. Обрабатывать, когда окно закрывается с помощью jquery или когда оно вышло из системы из «Просмотр профиля», чтобы изменить состояние с онлайн на оффлайн

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...