2015-11-10 12 views
1

在Django中記錄用戶活動的正確方法是什麼?記錄Django用戶活動的正確方法

例如,假設用戶有Groups,我想保留添加或刪除Object1時的記錄。

想到的方法是每次創建新記錄並拉取最新記錄,但這種感覺不對(並導致一些過濾問題,例如:您不能只在is_member=True上過濾,因爲您會過時結果)。有沒有適當的方法在Django中記錄這些?

回答

3

您可以使用django-auditable-models。它會鉤在django工作流程中,並且會避免你必須自己編寫所有的邏輯。

+0

沒有文檔。 – Gui

0

要記錄這樣的事情,我建議你創建一個core應用與TimeStampModel模型:

from django.db import models 
from django.utils.timezone import now 

class TimeStampModel(models.Model): 
    """ 
    TimeStampModel class allows us to follow creation and update of each inherit instance 
    """ 
    created_at = models.DateTimeField(auto_now_add=now(), editable=False) 
    updated_at = models.DateTimeField(auto_now=now(), editable=False) 

    class Meta: 
     abstract = True 

現在,繼承TimeStampModel要記錄創建或更新日期各車型。

E.g:

from django.db import models 
from core.models import TimeStampModel 

class Token(TimeStampModel): 
    uuid = models.CharField(max_length=255, primary_key=True) 
    # ... 

您還可以添加一個delete屬性(布爾)來實現邏輯刪除。最後一次更新將是刪除的日期。

Two Scoops of Django 1.8也推薦這種做法。