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
[](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;`)
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
[](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
Built Distribution
Close
Hashes for django-model-audit-history-1.1.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed557cdedade5e23d8be75bc1970b0f58f5fbe5032d74da806dde32658d18dcd |
|
MD5 | 1d69ab6637cecd91d202b32cfa756dbe |
|
BLAKE2b-256 | cc8ec61d94c12059d63605e045f120853e7a78e694f6c90f39b97268d326905a |
Close
Hashes for django_model_audit_history-1.1.3-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7b13ec2d878585ed74e1a21e0c2bdc778dd57aa5306b6822d366b6ceaba1381 |
|
MD5 | ed66d2e00fda3c4c30f31b65f57e4a79 |
|
BLAKE2b-256 | dcd2dff89addb0d8bfa85792b57d4f5c8e4a87c6da2f33276b00a91e4331e7a1 |