django-auditlog
Audit log app for Django
What it is and what it does
django-auditlog is a reusable Django app that automatically logs changes to model instances, recording which fields changed, their old and new values, the timestamp, and the user who made the change. It stores this information as JSON summaries in the database, making it easy to query and audit model history without the overhead of full version control.
Unlike Django's built-in admin log, auditlog is more flexible and lightweight—it's designed to be simple to use and fast, requiring minimal configuration. You register a model with the auditlog registry, and it begins tracking changes automatically. It depends only on Django and python-dateutil, keeping dependencies lean.
Use it for:
- Track who modified a user account, order, or configuration and when, for compliance or debugging.
- Build an audit trail for sensitive data changes (e.g., permissions, billing info) to meet regulatory requirements.
- Investigate what changed in a model instance over time without storing full version snapshots.
- Implement a simple change history UI that shows a JSON summary of each modification.
- Log admin or API-driven model updates for accountability in multi-user systems.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
django-auditlog logs changes to Django model instances, recording what changed, when, and which user made the change, storing the summary in JSON format.
Yes. django-auditlog is well-maintained, has low install friction, carries no known vulnerabilities, and solves a common Django need (model change tracking) in a lightweight way. The MIT license is permissive. Install it if you need audit logging for Django models and want a simple, proven solution.
Install
django-auditlog on PyPI
pip
pip install django-auditloguv
uv add django-auditlogpoetry
poetry add django-auditlogInstalling django-auditlog
Before you install
Low install friction: pure Python wheel, only two runtime dependencies (Django and python-dateutil). Active maintenance with recent commits and a release within the past year; supports modern Django versions (4.2–5.2) and Python 3.10–3.13.
License in practice
MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install django-auditlog
from auditlog.models import LogEntry
from auditlog.registry import auditlog
auditlog.register(MyModel)
Requires Django 4.2 or later and Python 3.10 or later; must be added to Django's INSTALLED_APPS and database migrations must be run.
Verify before relying
- Whether the package handles concurrent model updates correctly and what the performance impact is on high-volume write workloads.
- Whether JSON log storage scales well for models with many fields or long field values.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — Django, python-dateutil |
| Maintenance | actively maintained — 239 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,434,101/month — #3,904 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_auditlog-3.4.1-py3-none-any.whl
Tags
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
django-dirtyfieldsTracks which fields on a Django model instance…
permissive · top 15,000 on PyPI
django-reversiondjango-reversion adds version control to Django…
permissive · top 5,000 on PyPI
django-pghistoryTracks all changes to Django models using…
permissive · top 15,000 on PyPI
django-easy-auditLogs every CRUD operation, authentication…
copyleft · top 15,000 on PyPI
django-logentry-adminRegisters Django's built-in LogEntry model in…
permissive · top 15,000 on PyPI
django-upgradeAutomatically modernizes Django project code by…
permissive · top 15,000 on PyPI
django-jsonformProvides a user-friendly JSON editing form…
permissive · top 15,000 on PyPI
django-fsm-logAutomatically logs state transitions for Django…
permissive · top 15,000 on PyPI
django-structlogIntegrates structured logging into Django…
permissive · top 5,000 on PyPI
django-activity-streamDjango Activity Stream generates and displays…
permissive · top 15,000 on PyPI