-
Notifications
You must be signed in to change notification settings - Fork 103
DjangoVersionControl
Matt Harley edited this page Jul 9, 2015
·
2 revisions
- First install
django-reversion
: http://django-reversion.readthedocs.org/en/latest/ - Stick this in your
models.py
from django.db import models
import reversion
class BaseModelManager(models.Manager):
def deleted(self):
return reversion.get_deleted(self.model)
class BaseModel(models.Model):
objects = BaseModelManager()
# this is not needed if small_image is created at set_image
def save(self, *args, **kwargs):
with reversion.create_revision():
super(BaseModel, self).save(*args, **kwargs)
@property
def created(self):
return self.versions().last().revision.date_created
@property
def updated(self):
return self.versions().first().revision.date_created
def versions(self):
return reversion.get_for_object(self)
class Meta:
abstract = True
@reversion.register
class MyModel(BaseModel):
stuff = models.CharField(max_length=255, unique=True)
# ...
- and this in your admin.py
from django.contrib import admin
import reversion
from .models import MyModel
class MyModelAdmin(reversion.VersionAdmin):
pass
admin.site.register(MyModel, MyModelAdmin)
- and voila

