A Django app that keeps a log of changes made to an object.
  • Python 97.4%
  • HTML 1.6%
  • Makefile 0.5%
  • Shell 0.5%
Find a file
Thea Tischbein b9d8330ee5
Some checks are pending
Test / SQLite • Python 3.10 (push) Waiting to run
Test / SQLite • Python 3.11 (push) Waiting to run
Test / SQLite • Python 3.12 (push) Waiting to run
Test / SQLite • Python 3.13 (push) Waiting to run
Test / SQLite • Python 3.14 (push) Waiting to run
Test / PostgreSQL • Python 3.10 (push) Waiting to run
Test / PostgreSQL • Python 3.11 (push) Waiting to run
Test / PostgreSQL • Python 3.12 (push) Waiting to run
Test / PostgreSQL • Python 3.13 (push) Waiting to run
Test / PostgreSQL • Python 3.14 (push) Waiting to run
Test / MySQL • Python 3.10 (push) Waiting to run
Test / MySQL • Python 3.11 (push) Waiting to run
Test / MySQL • Python 3.12 (push) Waiting to run
Test / MySQL • Python 3.13 (push) Waiting to run
Test / MySQL • Python 3.14 (push) Waiting to run
Add german (de) locale (#831)
* Add german (de) locale

* lang de: Fix smaller issues

* lang de: with spelling

* lang de: recompile .mo from .po

---------

Co-authored-by: Youngkwang Yang <me@youngkwang.dev>
2026-07-15 09:49:47 +09:00
.github Add Python 3.14 and Django 6.0 to support matrix (#827) 2026-07-06 04:33:02 +03:00
auditlog Add german (de) locale (#831) 2026-07-15 09:49:47 +09:00
auditlog_tests Fix flaky test where MTI parent LogEntry surfaced at random (#832) 2026-07-11 10:32:54 +09:00
docs Add Python 3.14 and Django 6.0 to support matrix (#827) 2026-07-06 04:33:02 +03:00
.gitignore Add I18N Support (#762) 2025-09-30 16:15:45 +02:00
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate (#833) 2026-07-14 07:35:58 +09:00
.readthedocs.yaml pip install . during RTD build (#578) 2023-10-27 19:31:36 +03:30
CHANGELOG.md Add Python 3.14 and Django 6.0 to support matrix (#827) 2026-07-06 04:33:02 +03:00
CODE_OF_CONDUCT.md Jazzband: Created local 'CODE_OF_CONDUCT.md' from remote 'CODE_OF_CONDUCT.md' 2022-01-04 11:27:52 +01:00
CONTRIBUTING.md Changes for Jazzband (#269) 2020-10-23 12:16:27 +02:00
LICENSE Bump copyright year 2020-09-07 16:52:32 +02:00
Makefile Add I18N Support (#762) 2025-09-30 16:15:45 +02:00
MANIFEST.in Amend setup configuration to include non-python package files (#769) 2025-10-11 09:57:22 +02:00
pyproject.toml Drop Python 3.8 support (#678) 2024-10-17 18:40:21 +02:00
README.md Add note about V3 to readme (#626) 2024-04-07 21:36:13 +02:00
runtests.sh Extend CI and local test coverage to MySQL and SQLite (#744) 2025-08-17 16:50:23 +02:00
setup.py Add Python 3.14 and Django 6.0 to support matrix (#827) 2026-07-06 04:33:02 +03:00
tox.ini Add Python 3.14 and Django 6.0 to support matrix (#827) 2026-07-06 04:33:02 +03:00

django-auditlog

Jazzband Build Status Docs codecov Supported Python versions Supported Django versions

Migrate to V3

Check the Upgrading to version 3 doc before upgrading to V3.

django-auditlog (Auditlog) is a reusable app for Django that makes logging object changes a breeze. Auditlog tries to use as much as Python and Django's built in functionality to keep the list of dependencies as short as possible. Also, Auditlog aims to be fast and simple to use.

Auditlog is created out of the need for a simple Django app that logs changes to models along with the user who made the changes (later referred to as actor). Existing solutions seemed to offer a type of version control, which was found excessive and expensive in terms of database storage and performance.

The core idea of Auditlog is similar to the log from Django's admin. Unlike the log from Django's admin (django.contrib.admin) Auditlog is much more flexible. Also, Auditlog saves a summary of the changes in JSON format, so changes can be tracked easily.

Documentation

The documentation for django-auditlog can be found on https://django-auditlog.readthedocs.org. The source files are available in the docs folder.

License

Auditlog is licensed under the MIT license (see the LICENSE file for details).

Contribute

If you have great ideas for Auditlog, or if you like to improve something, feel free to fork this repository and/or create a pull request. I'm open for suggestions. If you like to discuss something with me (about Auditlog), please open an issue.

Releases

  1. Make sure all tests on master are green
  2. Create a new branch vX.Y.Z from master for that specific release
  3. Update the CHANGELOG release date
  4. Pull request vX.Y.Z -> master
  5. As a project lead, once the PR is merged, create and push a tag vX.Y.Z: this will trigger the release build and a notification will be sent from Jazzband of the availability of two packages (tgz and wheel)
  6. Test the install
  7. Publish the release to PyPI