跟踪对django模型的更改
django-tracked-model的Python项目详细描述
simple django应用程序,用于跟踪通过orm执行的db更改。(仅限 在python3和django-1.8.1上测试)
用法
一旦安装(请参阅下面的“安装”),跟踪的每个更改 无论何时调用“save”或“delete”,都将记录模型。
要包含有关更改情况的有用信息,请使用
model.save(request=request)
或
model.save(track_token=token)
对于model.delete()也是如此,其中request只是django HttpRequest实例,token是 tracked_model.control.create_track_token(request)调用。
这将存储djagno用户以及ip、主机、用户所做的更改 代理、请求路径、请求方法、引用程序和请求时间戳。
要访问模型的历史记录,请调用它的tracked_model_history方法
model.tracked_model_history()
模型实例可以通过调用 materialize
model = SomeModel.objects.create(attr='initial') model.attr = 'change 1' model.save() model.attr = 'change 2' model.save() model_initial_state = model.tracked_history().first().materialize()
安装
$ pip install django-tracked-model
将tracked_model添加到settings中的INSTALLED_APPS。
同步数据库
$ python manage.py syncdb
将模型标记为可跟踪
from django.db import models from tracked_model.control import TrackedModelMixin as Tracked class MyModel(Tracked, models.Model): spam = models.IntegerField() egg = models.TextField()
测试和模型
如果出于某种奇怪的原因,你想四处闯荡,克隆repo并安装 dev-reqs.txt中的内容
$ pip install -r dev-reqs.txt
有一个带有一些方便快捷方式的makefile,例如
$ make test
$ make qa
查看makefile以了解详细信息