一个django应用程序,用于对django模型中存储的数据进行版本控制。
django-versions的Python项目详细描述
概述
django-versions允许您无缝地对django模型中存储的数据进行版本转换要开始,只需在设置中设置VERSIONS_REPOSITORIES变量并配置要使用的存储库,然后仅从VersionsModel子类化模型并开始保存数据:
from django.db import models from versions.models import VersionsModel class MyModel(VersionsModel): text = models.TextField()
安装
依赖性
- 汞=1.5.2
- django==1.1.x
安装django版本
如果是从源代码安装,只需在django-versions源代码树的基础上运行以下命令:
python setup.py install
如果要在不签出源的情况下安装软件包,则应运行:
pip install django-versions # OR if you don't have pip installed (you should definitely check out pip) easy_install django-versions
目前,我们需要修补Django以允许我们从Manager类访问相关模型源树的根目录中包含一个包含所需更改的修补程序django.patch要修补django,请转到django 1.1.x签出的根目录并运行:
patch -p0 < /path/to/django-versions/django.patch
将VERSIONS_REPOSITORIES添加到设置文件中,指向希望django-versions创建和存储模型历史记录的位置:
VERSIONS_REPOSITORIES = { 'default': { 'backend': 'versions.backends.hg', 'local': '/path/to/my/projects/model/history', } }
启用版本管理
安装VersionsMiddleware:
MIDDLEWARE_CLASSES = ( ... 'versions.middleware.VersionsMiddleware', ... )
或手动启用版本化模型的编辑:
from versions.base import revision @revision.commit_on_success def my_editing_function(request): m = MyModel.objects.get(pk=1) m.save() def my_other_editing_function(request): with revision: m = MyModel.objects.get(pk=1) m.save()