在Django中記錄用戶活動的正確方法是什麼?記錄Django用戶活動的正確方法
例如,假設用戶有Groups
,我想保留添加或刪除Object1
時的記錄。
想到的方法是每次創建新記錄並拉取最新記錄,但這種感覺不對(並導致一些過濾問題,例如:您不能只在is_member=True
上過濾,因爲您會過時結果)。有沒有適當的方法在Django中記錄這些?
在Django中記錄用戶活動的正確方法是什麼?記錄Django用戶活動的正確方法
例如,假設用戶有Groups
,我想保留添加或刪除Object1
時的記錄。
想到的方法是每次創建新記錄並拉取最新記錄,但這種感覺不對(並導致一些過濾問題,例如:您不能只在is_member=True
上過濾,因爲您會過時結果)。有沒有適當的方法在Django中記錄這些?
您可以使用django-auditable-models。它會鉤在django工作流程中,並且會避免你必須自己編寫所有的邏輯。
要記錄這樣的事情,我建議你創建一個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也推薦這種做法。
沒有文檔。 – Gui