Marty Alchin的ProDjango书中的HistoricalRecords。
项目描述
这是来自Marty Alchin的Pro Django书的。
设置virtualenv
$ virtualenv --no-site-packages ve $ source ve/bin/activate (ve)$ pip install -r requirements.pip
或从PyPI安装
$ pip install django-historicalrecords
导入HistoricalRecords并将其附加到您的模型,就像附加自定义Django管理器一样。
from django.db import models from history.models import HistoricalRecords class TestModel(models.Model): """A model for testing""" boolean = models.BooleanField(default=True) characters = models.CharField(blank=True, max_length=100) history = HistoricalRecords() class Admin: list_display = ('',) search_fields = ('',) def __unicode__(self): return u"TestModel"
如果您运行manage.py syncdb,您将看到它自动为您附加的任何模型创建一个Historical版本。
(ve)$ ./manage.py syncdb Creating table auth_permission ... // snip // ... Creating table example_app_historicaltestmodel <- HistoricalTestModel! Creating table example_app_testmodel ... // snip // ...
HistoricalRecords克隆附加到的模型,并添加一些额外的字段,允许您跟踪所做的更改类型、保存更改的时间戳,并且它有一个描述符,可以在更改时返回原始对象。
(ve)$ ./manage.py shell >>> from example_app.models import TestModel >>> tm = TestModel.objects.create(boolean=True,characters="abc") >>> tm.history.count() 1 >>> most_recent = tm.history.most_recent() >>> most_recent.boolean True >>> most_recent.characters u'abc' >>> tm.boolean = False >>> tm.characters = "def" >>> tm.save() >>> tm.history.count() 2 >>> tm.history.all() [<HistoricalTestModel: TestModel as of 2010-09-10 03:29:59.424761>, <HistoricalTestModel: TestModel as of 2010-09-10 03:28:31.358548>] >>> from datetime import datetime >>> timestamp = datetime(2010,9,10,3,28,31,358548) >>> old_version = tm.history.as_of(timestamp) >>> old_version.boolean True >>> tm.boolean False >>> old_version.characters u'abc' >>> tm.characters 'def' >>>
项目详情
关闭
散列 对 django-historicalrecords-unleashed-1.3.1.tar.gz
算法 | 散列摘要 | |
---|---|---|
SHA256 | 04d8547caee3cb9c3dc55839e6e1a88ae560aad8d0e260e21cabea1dc0f1ed99 |
|
MD5 | f55be246e8cabca37a2a2eb51c7316c2 |
|
BLAKE2b-256 | 8e5e5632c35be298bc337cd6f2abfed193b8d5d646ec1dc89fcd9229e8a00937 |
关闭
散列 对 django_historicalrecords_unleashed-1.3.1-py2-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | be67f4e05c24ccba50e3b2e3a34011b1ba3f6dcd3ca8c4af965698d2de73d142 |
|
MD5 | 3ea269faeca14a696ca66d755caf8d34 |
|
BLAKE2b-256 | 18dd0b51aa0317af4f298518f2200936141bf4b83f8f67f22b4b698abc0496dd |