Skip to main content

A Django model field for PostgreSQL to store changes to a model chronologically.

Project description

# django-model-audit-history

Provides an `AuditHistory` model field to store a chronological record of changes to a model (“audit history”) on the model. The historical record is stored in a designated JSON field, so no additional database tables are required.

Supports Django 1.11 (and possibly Django 2.x in the future) and PostgreSQL database backends.

## CI

[![Build Status](https://travis-ci.org/nexto/django-model-audit-history.svg?branch=master)](https://travis-ci.org/nexto/django-model-audit-history)

## Usage

The basic principles are as follows:

1. To enable this for a model, you have to make these changes:

* add an `AuditHistoryField` named `history` to the model
* add the `AuditHistoryMixin` to the model class
* create ModelAdmin:
```
ModelAdmin(AuditHistoryAdminMixin, admin.ModelAdmin):
pass
```
* add your ModelAdmin to admin site `admin.site.register(model, ModelAdmin)`

2. Then, instead of calling regular `save()` on the model after changing it, call `save_with_audit_record()` instead (passing in some meta data you want saved alongside, e.g. the `event` that caused the change, the `user` triggering it and some `payload` usually the set of modified fields.

3. The history will appear in human-readable form in the admin.

That’s pretty much all there is to it.

## Testapp setup and first steps

1. Install Postgres locally (e.g. 10.x)
2. Create local database `audithistory`, owned by user `dev`
3. Create a virtualenv and activate: `virtualenv venv`, then `source venv/bin/activate`
4. Install dependencies into virtualenv: `pip install --requirement requirements.txt`
5. Run `manage.py migrate`
6. Run `manage.py createsuperuser`
7. Run `manage.py runserver`
8. Create new model on http://localhost:8000/admin/test_app/blogpost/
9. Edit model via http://localhost:8000/edit/1/
10. Reload admin page and inspect history record

## Run tests in local environment:

* Run `manage.py test` (Ensure that user dev has rights to db creation `alter user dev createdb;`)


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-model-audit-history-1.1.3.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file django-model-audit-history-1.1.3.tar.gz.

File metadata

  • Download URL: django-model-audit-history-1.1.3.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.9

File hashes

Hashes for django-model-audit-history-1.1.3.tar.gz
Algorithm Hash digest
SHA256 ed557cdedade5e23d8be75bc1970b0f58f5fbe5032d74da806dde32658d18dcd
MD5 1d69ab6637cecd91d202b32cfa756dbe
BLAKE2b-256 cc8ec61d94c12059d63605e045f120853e7a78e694f6c90f39b97268d326905a

See more details on using hashes here.

File details

Details for the file django_model_audit_history-1.1.3-py2-none-any.whl.

File metadata

  • Download URL: django_model_audit_history-1.1.3-py2-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.9

File hashes

Hashes for django_model_audit_history-1.1.3-py2-none-any.whl
Algorithm Hash digest
SHA256 f7b13ec2d878585ed74e1a21e0c2bdc778dd57aa5306b6822d366b6ceaba1381
MD5 ed66d2e00fda3c4c30f31b65f57e4a79
BLAKE2b-256 dcd2dff89addb0d8bfa85792b57d4f5c8e4a87c6da2f33276b00a91e4331e7a1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page