django-model-history

Enable in any Model class an change history of all inserts, updates and deletes


Keywords
django, model, changes, history
License
LGPL-3.0
Install
pip install django-model-history==0.1.1

Documentation

django-model-history

https://travis-ci.org/goinnn/django-model-history.png https://coveralls.io/repos/goinnn/django-model-history/badge.png https://badge.fury.io/py/django-model-history.png

Enable in any Model class an change history of all inserts, updates and deletes

Installation

In your settings.py

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',

    #.....................#

    'model_history',
)

Option 1: In your models.py

You only must to update the parent class of your model.

from django.db import models


class MyModel(models.Model):
    ....
from model_history.models import ModelHistoryProvider


class MyModel(ModelHistoryProvider):
    ....

...

Option 1 example.

Option 2: In your models.py

Or you can call directly to the create_history_model_class function

from django.db import models


from model_history.models import create_history_model_class, BaseModelHistory

class MyModel(models.Model):
    ....


MyModelHistory = create_history_model_class(MyModel, (BaseModelHistory,))

Option 2 example.

Development

You can get the last bleeding edge version of django-model-history by doing a clone of its git repository

git clone https://github.com/goinnn/django-model-history

Example project

https://raw.githubusercontent.com/goinnn/django-model-history/0.1.0/example/uml.png

In the source tree, you will find a directory called example. It contains a readily setup project that uses django-model-history. You can run it as usual:

python manage.py makemigrations
python manage.py syncdb --noinput
python manage.py runserver

Access in a browser to http://localhost:8000/