django-reversion is an extension to the Django web framework that provides version control for model instances.


  • Roll back to any point in a model instance’s history.
  • Recover deleted model instances.
  • Simple admin integration.


To install django-reversion:

  1. Install with pip: pip install django-reversion.
  2. Add 'reversion' to INSTALLED_APPS.
  3. Run migrate.

Admin integration

django-reversion can be used to add rollback and recovery to your admin site.

Register your models with a subclass of reversion.admin.VersionAdmin.

from django.contrib import admin
from reversion.admin import VersionAdmin

class YourModelAdmin(VersionAdmin):



Whenever you register a model with django-reversion, run createinitialrevisions.

For more information about admin integration, see Admin integration.

Low-level API

You can use the django-reversion API to build version-controlled applications. See django-reversion API.