django-versions 1.0.1

A django application to enable versioning of data stored in Django models.

Overview

django-versions allows you to version the data stored in django models seamlessly. To get started all you need to do is to set VERSIONS_REPOSITORIES variable in your settings and configure the repositories you would like to use, then just subclass your Model from VersionsModel and start saving data:

from django.db import models
from versions.models import VersionsModel

class MyModel(VersionsModel):
    text = models.TextField()

Installation

Dependencies

  • Mercurial >= 1.5.2
  • Django == 1.1.X

Installing django-versions

If your are installing from source, you just need to run the following command from the base of the django-versions source tree:

python setup.py install

If you want to install the package without checking out the source you should run:

pip install django-versions

# OR if you don't have pip installed (you should definitely check out pip)
easy_install django-versions

For the time being, we need to patch Django to allow us to gain access to the related model from Manager classes. There is a patch included at the root of the source tree django.patch that includes the required changes. To patch django, go to the root of your checkout of django 1.1.X and run:

patch -p0 < /path/to/django-versions/django.patch

Add VERSIONS_REPOSITORIES to your settings file, pointing to the location where you would like django-versions to create and store your model history:

VERSIONS_REPOSITORIES = {
     'default': {
          'backend': 'versions.backends.hg',
          'local': '/path/to/my/projects/model/history',
          }
     }

Enabling Version Management

Install the VersionsMiddleware:

MIDDLEWARE_CLASSES = (
    ...
    'versions.middleware.VersionsMiddleware',
    ...
    )

Or handle enabling editing of Versioned models manually:

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()
MIT

Author

Nowell Strite

Pip

django-versions==1.0.1

Classifiers

  • Topic :: Utilities
  • Topic :: Software Development :: Version Control
  • Programming Language :: Python :: 2.7
  • Programming Language :: Python :: 2.6
  • Programming Language :: Python :: 2.5
  • Programming Language :: Python
  • Operating System :: Unix
  • Operating System :: POSIX :: Linux
  • Operating System :: OS Independent
  • Operating System :: MacOS :: MacOS X
  • Natural Language :: English
  • License :: OSI Approved :: MIT License
  • Intended Audience :: Developers
  • Development Status :: 3 - Alpha
File Type Python Version Uploaded On Downloads
django-versions-1.0.1.tar.gz Source Aug. 17, 2010 2,271
Version Release Date
1.0.1 Aug. 17, 2010
1.0.0 Aug. 17, 2010
Date Package Version Action
Nov. 4, 2014, 2:02 p.m. django-versions 1.0.1 Release Created
Nov. 4, 2014, 2:02 p.m. django-versions 1.0.0 Release Created
Nov. 4, 2014, 2:02 p.m. django-versions Package Created