skillfed

django-auditlog

Audit log app for Django

django-auditlog v3.4.1 1.4M downloads/30d#3,904 on PyPI1,377
Permissive license MIT Active released

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-auditlog

uv

uv add django-auditlog

poetry

poetry add django-auditlog

Installing 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

Framework :: DjangoFramework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13

Tags

django model change loggingaudit trail for djangotrack model modificationsdjango change historymodel field audit logwho changed what when django
django-appaudit-loggingcompliance

More Database packages

psycopg2-binary

psycopg2-binary is a PostgreSQL database…

copyleft · top 1,000 on PyPI

redis

Python client library for connecting to and…

permissive · top 1,000 on PyPI

ydb

YDB Python SDK is the official client library…

permissive · top 1,000 on PyPI

snowflake-connector-python

Connects Python applications to Snowflake data…

permissive · top 1,000 on PyPI

sqlparse

sqlparse tokenizes SQL text into a tree of…

permissive · top 1,000 on PyPI

dbt-adapters

Provides base adapter protocols and shared…

permissive · top 1,000 on PyPI

django-dirtyfields

Tracks which fields on a Django model instance…

permissive · top 15,000 on PyPI

django-reversion

django-reversion adds version control to Django…

permissive · top 5,000 on PyPI

django-pghistory

Tracks all changes to Django models using…

permissive · top 15,000 on PyPI

django-easy-audit

Logs every CRUD operation, authentication…

copyleft · top 15,000 on PyPI

django-logentry-admin

Registers Django's built-in LogEntry model in…

permissive · top 15,000 on PyPI

django-upgrade

Automatically modernizes Django project code by…

permissive · top 15,000 on PyPI

django-jsonform

Provides a user-friendly JSON editing form…

permissive · top 15,000 on PyPI

django-fsm-log

Automatically logs state transitions for Django…

permissive · top 15,000 on PyPI

django-structlog

Integrates structured logging into Django…

permissive · top 5,000 on PyPI

django-activity-stream

Django Activity Stream generates and displays…

permissive · top 15,000 on PyPI