Registry / web-framework / django-easy-audit

django-easy-audit

JSON →
library1.3.8pypypiunverified

Yet another Django audit log app, logging login attempts, CRUD events, and requests. Version 1.3.8 is latest stable, compatible with Django 4.2–5.2 and Python 3.9–3.13. Pre-releases (1.3.9.a2) add Django 6.0 and Python 3.14 support. Regular releases about every 6 months.

pip install django-easy-audit
INSTALL
IMPORT
SIG · DJANGO-EASY-AUDIT
D
django-easy-audit
web-frameworkpythonv1.3.8
Install
3.4s avg
Import
Disk
66MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.3.8 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 66.7MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 3.4s · import 0.000s · 67MB
66MB installed
● package 66MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

EasyAuditMiddleware
from easyaudit.middleware import EasyAuditMiddleware
from easy_audit.middleware import EasyAuditMiddleware

Add 'easy_audit' to INSTALLED_APPS and the middleware to MIDDLEWARE. Run migrate to create tables.

INSTALLED_APPS = [ ... 'easy_audit', ] MIDDLEWARE = [ ... 'easy_audit.middleware.EasyAuditMiddleware', ] # Then run: # python manage.py migrate easy_audit # python manage.py runserver
Debug
Known issues
breakingIn v1.3.7, support for Django 3.2 was dropped. If you upgrade from an older version and use Django 3.2, your app will break.
fix
Upgrade Django to 4.2 or later.
affects: >=1.3.7
gotchaIf you use a custom user model, you must ensure it has an id field. The library assumes user.id is integer. Assigning an anonymous user returns None for user_id.
fix
Make sure your user model's id field is an integer or adjust the library's signal handlers.
affects: all
deprecatedThe setting `DJANGO_EASY_AUDIT_CRUD_EVENT_IGNORED_FIELDS` is deprecated in favor of `DJANGO_EASY_AUDIT_CRUD_EVENT_EXCLUDED_FIELDS`. Using the old name still works but may be removed in future.
fix
Rename to `DJANGO_EASY_AUDIT_CRUD_EVENT_EXCLUDED_FIELDS` in settings.
affects: >=1.3.6
gotchaThe middleware may not work with ASGI/async views out of the box. Async support was added in v1.3.8.b1 but may still have edge cases.
fix
Upgrade to v1.3.8 or later. If still issues, wrap with `sync_to_async`.
affects: <1.3.8
gotchaIf you set `DJANGO_EASY_AUDIT_CRUD_DIFFERENCE_CALLBACKS`, the callbacks must be importable strings (e.g., 'module.function'). If the callback raises an exception, the audit log entry may not be created.
fix
Wrap custom callbacks in try/except to avoid breaking the audit.
affects: all
Upgrade
Version history
1.3.8latest on PyPI · released Jan 7, 2026
Audit
Dependencies
djangorequiredCore requirement. Compatible with Django 4.2, 5.0, 5.1, 5.2.
Agent activity
37 hits · last 30 days
node
34
OpenAI (training)
2
Resources
django-easy-audit — pip install django-easy-audit · libregistry