NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3569 most downloaded on PyPI
Audit log app for Django
Last release 9 months ago
18 Dec 2025
Release timing varies
gaps range from 2 weeks to 13 months
Nearly every release is documented
notes for 29 of 30 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
35 releases · first in 2013
Fix AttributeError when AUDITLOG_LOGENTRY_MODEL is not set ( #788 ) by @jgillard in #789
Full Changelog: v3.4.0...v3.4.1
One column per quarter.
[pre-commit.ci] pre-commit autoupdate by @pre-commit-ci [bot] in #765
Full Changelog: v3.3.0...v3.4.0
AUDITLOG_USE_FK_STRING_REPRESENTATION setting that controls how foreign key changes are represented (#779))AUDITLOG_USE_BASE_MANAGER setting to override default manager use (#766)Use canonical timezone name for Buenos Aires by @EdwardBetts in #736
Full Changelog: v3.2.1...v3.3.0
Add support for Django 5.2 by @mahdirahimi1999 in #730
Full Changelog: v3.2.0...v3.2.1
AUDITLOG_STORE_JSON_CHANGES=True was not respected during updates and deletions. (#732)improve actor_email assignment by @GreatBahram in #720
get_field_value field default value handling for Django 6.0 compatibility by @2ykwang in #726Full Changelog: v3.1.2...v3.2.0
Pin libraries to fix release
Pin libraries to fix release (#718)
Fix GitHub actions deprecations by @aleh-rymasheuski in #520
change field to be a json field. by @sum-rock in #407USE_TZ=False by @hramezani in #511serialized_data with F expressions by @hramezani in #544AUDITLOG_CID_GETTER is None by @aqeelat in #565ObjectDoesNotExist in evaluation of object_repr by @aleh-rymasheuski in #592LogEntry instance in post_log signal by @ppmathis in #605changes_display_dict when model is missing by @ppmathis in #609Full Changelog: v2.2.1...v3.0.0
AUDITLOG_DISABLE_REMOTE_ADDR is set to True (#620)feat: If any receiver returns False, no logging will be made. This can be useful if logging should be conditionally enabled / disabled
Python: Confirm Python 3.12 support
feat: stop deleting old log entries when a model with the same pk is created (i.e. the pk value is reused)
feat: Change LogEntry.change field type to JSONField rather than TextField. This change include a migration that may take time to run depending on the
LogEntry.change field type to JSONField rather than TextField. This change include a migration that may take time to run depending on the number of records on your LogEntry table (#407)(#495)AuditlogHistoryField.delete_related to False by default. This is different from the default configuration of Django's GenericRelation, but we should not erase the audit log of objects on deletion by default. (#557)JSONField. The JSONField.encoder is assigned to json.dumps. (#489)AUDITLOG_INCLUDE_ALL_MODELS is enabled. (#498)*_id naming. (#525)USE_TZ=False. (#511)LogEntry.changes_dict() returns an empty dict instead of None when json.loads() returns None. (#472)verbose_name when model is not accessible. (508)serialized_data with F expressions. (508)Nothing published for this version
fix: revert #449 "Make log entries read-only in the admin" as it breaks deletion of any auditlogged model through the admin when AuditlogHistoryField
fix: Make log entries read-only in the admin.
feat: Add ACCESS action to LogEntry model and allow object access to be logged.
ACCESS action to LogEntry model and allow object access to be logged. (#436)serialized_data field on LogEntry model. (#412)mapping_field if available #428disable_auditlog to turn off logging and a new setting AUDITLOG_DISABLE_ON_RAW_SAVE
to disable it during raw-save operations like loaddata. #446django.utils.timezone.utc by datetime.timezone.utc. #448LogEntry.changes field instead of object representations. (#420)created timestamp in server timezone (#404)remote_addr (#417)PolymorphicModel has relation with other models (#429)feat: Display the diff for deleted objects in the admin
feat: Add --before-date option to auditlogflush to support retention windows
--before-date option to auditlogflush to support retention windows (#365)LogEntry.timestamp column (#364)feat: enable use of replica database (delegating the choice to DATABASES_ROUTER)
DATABASES_ROUTER) (#359)mask_fields argument in register to mask sensitive information when logging (#310)django_jsonfield_backport is not required anymore (#370)default_app_config configuration (#372)Replace deprecated smart_text() with smart_str()
LogEntry's action field (#236)resource fieldactor username to search fields in adminMIDDLEWARE_CLASSES with MIDDLEWAREsmart_text() with smart_str()ugettext with gettext for Django 4update_fields kwarg (#336)auditlogflush management commandThis release adds support for Django 3.0, and drops support for Python 2 and unsupported Django versions (most notably Django 1.11).
This release adds support for Django 3.0, and drops support for Python 2 and unsupported Django versions (most notably Django 1.11).
Overview of changes: https://github.com/jjkester/django-auditlog/pull/263
Improve support multiple database (PostgreSQL, MySQL)
Added support for Django 2.0, along with a number of bug fixes.
Added support for Django 2.0, along with a number of bug fixes.
Release notes to be added soon.
Release notes to be added soon.
python-dateutil to requirementsFixes cricital bug in admin mixin making the library only usable on Django 1.11 (thanks, @audiolion)
Fixes
_As it turns out, haste is never good. Due to the focus on quickly releasing this version a nasty bug was not spotted, which makes this version only u
As it turns out, haste is never good. Due to the focus on quickly releasing this version a nasty bug was not spotted, which makes this version only usable with Django 1.11 and above. Upgrading to 0.4.3 is not only encouraged but most likely necessary. Apologies for the inconvenience and lacking quality control.
Improvements
Fixes
Improved Django Admin pages (thanks, @robguttman)
Improvements
Fixes
Updated dependencies - _please check whether your project works with these higher versions_
Breaking changes
New features
Improvements
Fixes
unregister method (thanks, @kbussell)
Fixes
unregister method (thanks, @kbussell)LogEntry.objects.get_for_objects works properly on PostgreSQL (thanks, @justinlittman)Important notes
object_pk field is now limited to 255 charsunregister methodLogEntry.objects.get_for_objects works properly on PostgreSQLobject_pk field is now limited to 255 charsCompatibility with Django 1.9 (thanks to @grendel513 and others)
New functionality
Improvements
Auditlog data is now correctly stored in the thread. Thanks to @7wonders for noticing!
Fixes
Support for out-of-date Django versions is dropped as of this release. At minimum Django version 1.7 is required. This also means that South is no lon
Breaking changes
Support for out-of-date Django versions is dropped as of this release. At minimum Django version 1.7 is required. This also means that South is no longer supported.
New functionality
Improvements
South compatibility for AuditlogHistoryField
New functionality:
AuditlogHistoryFieldAlthough this release contains mostly bugfixes, the improvements were significant enough to justify a higher version number. Also, less changes to the
Although this release contains mostly bugfixes, the improvements were significant enough to justify a higher version number. Also, less changes to the API are expected.
Improvements:
Utility methods for using log entry data
New functionality:
Improvements:
First beta release of Auditlog.
First beta release of Auditlog.
Your coding agent can read these notes before it upgrades. Set up the MCP server →