随着时间的推移跟踪django模型对象
django-model-tracker的Python项目详细描述
型号跟踪器
跟踪模型对象随时间变化,以便您知道是谁做了什么。
安装
- 安装软件包
pip install django-model-tracker
- 将应用程序添加到项目的已安装应用程序中
INSTALLED_APPS=('....','ModelTracker',)
- 在url.py中添加以下行
importModelTrackerurlpatterns=patterns('',...url(r'^track/',include('ModelTracker.urls')),...)
- 运行迁移
python manage.py migrate ModelTracker
- 将以下行添加到models.py文件中
fromModelTrackerimportTracker
- 将要跟踪的每个模型从
Tracker.ModelTracker
转换为inhert,而不是models.Model
旧代码
classEmployee(models.Model):name=models.CharField(max_length=255)address=models.CharField(max_length=255)age=models.IntegerField()
新代码
classEmployee(Tracker.ModelTracker):name=models.CharField(max_length=255)address=models.CharField(max_length=255)age=models.IntegerField()
- 对于每个save()调用,向用户添加用户名
- 旧代码
emp=Employee()emp.save()
* New Code
emp=Employee()emp.save(request.user.username)
从0.5版开始,您可以传递event_name参数以将更改标记为事件
- 新代码
emp=Employee()emp.save(request.user.username,event_name="Created the user")
使用中间件
您可以将ModelTracker.middleware.ModelTrackerMiddleware
添加到中间件类中,以便从请求中自动获取用户名。
MIDDLEWARE_CLASSES=('....','ModelTracker.middleware.ModelTrackerMiddleware',)
注意:如果将用户名作为None
传递,则不会保存更改。