2009-10-11 46 views
6

有什麼方法可以跟蹤在Django的活躍用戶?django跟蹤最近的在線用戶

我已經看到了這個問題的幾個在線解決方案:

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

是其中的一個。但爲了解決這個簡單的問題,修改模型結構似乎很奇怪。我想知道是否有任何快速解決方案。

在Django身份驗證的LAST_LOGIN場是多大用處也沒有,因爲它不僅記錄了時間沒有更新用戶登錄和領域,如果用戶已經在會議上很長一段時間

回答

4

我是誰寫的博客:)

我沒有修改用戶模型,我擴展它,它是一樣的配置文件,但我想讓它的方式,如果你已經定義了一個配置文件,你仍然可以使用我的方法。

我認爲擴展用戶模型是處理它的最好方法,我不知道是否有任何反對它的觀點。

+0

我已經使用的擴展模型爲脫機。我的意思是說,我需要直接獲取活動用戶狀態,而不必在模型中添加「last_activity_ip」和「last_activity_date」。但是你的解決方案似乎是在這種情況下最好的方法。 – saurabh 2009-10-12 18:49:11

2

修改auth用戶模型可能不是一個非常「靈活」的方法。

最簡單的方法可能是提供一個配置文件 - Django具有內置的支持,可以提供用戶配置文件模型來存儲其他用戶相關數據,而無需修改任何內置模型。

Django manual

只需將存儲在用戶的配置文件中的最後一個活動的時間。

4

我同意最好的方法是使用配置文件。這將有一個用戶表的外鍵,而不是修改現有的表。

就如何記錄用戶操作而言,一種模式可能是編寫一個包裝所有想要記錄的視圖的裝飾器。裝飾者只需記錄相關用戶檔案的時間和操作。

0

嘗試這種解決方案:

  1. 創建像使用user.id作爲一個外鍵
  2. 「曲線」的模型創建一個配置文件來看,當用戶登錄時,從離線更改狀態 網上

    • 您也可以使用視圖,以檢查上次登錄的用戶「X」 分鐘
  3. 手柄時,窗口關閉與jQuery,或從「查看資料」註銷 將狀態從在線更改時