django-reversion
An extension to the Django web framework that provides version control for model instances.
Decision gist · record as of 2026-08-14
Yes. django-reversion is actively maintained, has no known vulnerabilities, carries a permissive BSD license, and solves a common Django problem with low install friction. It's well-established (first released in 2012) and widely used. Install it if you need model versioning, audit trails, or recovery capabilities in a Django project.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Django 4.2 or later and Python 3.9 or later.
- Low friction install with a single runtime dependency on django.
- The project is actively maintained with a recent release and steady commit activity, indicating reliable ongoing support.
License · maintenance · safety
BSD (permissive) — BSD license is permissive, allowing commercial and private use with minimal restrictions—suitable for most projects.
last release 2026-06-12 (63 days) · last repo commit 2026-06-12 · 3,169 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,857,458 downloads/mo, #3,486 on PyPI
Alternatives
Verify before relying
pip install django-reversion
import reversion
from django.db import models
with reversion.create_revision():
instance.field = 'new_value'
instance.save()- Whether the admin integration requires additional configuration beyond basic installation.
- Performance characteristics when tracking large numbers of revisions on high-traffic models.
- Database storage overhead for revision history in production environments.
What it is and what it does
django-reversion is a Django extension that automatically tracks changes to model instances, storing a complete history of each record's state over time. It lets you roll back any model instance to a previous version, recover deleted records from the revision history, and integrates with Django's admin interface to expose these capabilities to administrators.
The package works by intercepting model saves and deletions, storing snapshots of model state in the database. You wrap model operations in a revision context to group related changes together, making it easy to undo or audit modifications. It's designed for Django applications that need audit trails, undo functionality, or recovery from accidental deletions.
Use it for
- Implement an undo/redo feature in a Django admin interface for content management systems.
- Maintain an audit trail of all changes to critical business records for compliance or investigation.
- Recover accidentally deleted records from the revision history without manual database restoration.
- Track who changed what and when for user-facing activity logs or administrative reports.
- Support rollback of bulk data imports or migrations that introduced errors.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
django-reversion is actively maintained, has no known vulnerabilities, carries a permissive BSD license, and solves a common Django problem with low install friction. It's well-established (first released in 2012) and widely used. Install it if you need model versioning, audit trails, or recovery capabilities in a Django project.
Install
django-reversion on PyPI
Before you install
Low friction install with a single runtime dependency on django. The project is actively maintained with a recent release and steady commit activity, indicating reliable ongoing support.
Requires Django 4.2 or later and Python 3.9 or later.
License in practice
BSD license is permissive, allowing commercial and private use with minimal restrictions—suitable for most projects.
Quickstart
pip install django-reversion
import reversion
from django.db import models
with reversion.create_revision():
instance.field = 'new_value'
instance.save()
Verify before relying
- Whether the admin integration requires additional configuration beyond basic installation.
- Performance characteristics when tracking large numbers of revisions on high-traffic models.
- Database storage overhead for revision history in production environments.
Package facts
| License | BSD permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagedjango |
| Maintenance | Actively maintained 63 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,857,458 / month, #3,486 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentFramework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.2Framework :: Django :: 6.0Intended Audience :: DevelopersLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9 |
Evidence: django_reversion-6.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “django model version control”
- django-reversiondjango-reversion adds version control to Django model instances,…
- django-reversion-compareAdds a side-by-side version comparison view to Django admin for…
- django-pghistoryTracks all changes to Django models using PostgreSQL triggers,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Database packages
psycopg2-binary is a PostgreSQL database adapter for Python that implements the DB API 2.0 specification, enabling Python applications to connect to and query PostgreSQL databases with thread-safe concurrent operations.
Python client library for connecting to and executing commands against Redis key-value stores, supporting both synchronous and asynchronous operations.
Install it if your application needs to interact with Redis; the only prerequisite is a running Redis server instance.
YDB Python SDK is the official client library for connecting to and querying YDB databases from Python applications.
Install it if you need to connect Python applications to YDB databases.
Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.
sqlparse tokenizes SQL text into a tree of statements, clauses, and expressions, and provides functions to split scripts, format queries, and inspect parsed tokens without validating dialect or syntax.
Install it if you need to manipulate, format, or analyze SQL text programmatically.
Provides base adapter protocols and shared functionality that database adapters use to integrate with dbt-core, handling connections, dialect translation, relation caching, and core interface management.
See also django-clone · django-reversion-compare · django-auditlog · django-pghistory · django-dirtyfields · django-safedelete · SQLAlchemy-Continuum · django-fsm-log