Store model fields history
Project description
django-fields-history
A Django app that track history changes in model fields.
Important note: currently only one implementation of FieldsHistory
is supported and it's with django.contrib.postgres.fields.JSONField
which is JSONB
under the hood. So only postgresql as database is supported
Similar projects:
Main difference that those libraries keep track of changes, and this library tracks the history change.
Simple explanation:
from field_history.trackers import FieldsHistoryTracker
class SimpleModel(models.Model):
field = models.CharField(max_length=50)
field_history = FieldsHistoryTracker(fields=['field'])
obj = SimpleModel.objects.create(field='value')
assert not obj.get_field_history()
obj.field = "new_value"
obj.save()
assert obj.get_field_history()
assert obj.get_field_history()[0].value == "value"
QuickStart
Install django-fields-history
:
pip install django-fields-history
Add fields_history.postgres
to INSTALLED_APPS
(currently only
postgres implementation is supported):
INSTALLED_APPS = [
# rest of apps
"fields_history.postgres",
]
And add trackers to your models and specify fields to track:
from field_history.trackers import FieldsHistoryTracker
class YourModel(models.Model):
...
history_tracker = FieldsHistoryTracker(fields=["field1", "field2"])
And you are done.
Implementation
Every change of your fields field changes be tracked in
fields_history.models.FieldsHistory
in:
fields_history.postgres
-JSONB
postgres field
One object per save if tracked fields has been changed.
Credits
Basically this project is implemented based on django-field-history which itself used django-model-utils.
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
Hashes for django-fields-history-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8112d62c60189a19ff1fb0b1001a699ff619f1c0e4f6952b771de3e64b10906c |
|
MD5 | b13e4031faf378cbbd885f39b343100c |
|
BLAKE2b-256 | c1a0c41267f77774df61f16aace268b79d5a5f3b1e8e2e418ad2acd83aa1c4f6 |
Hashes for django_fields_history-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27521d7a26977cc7e5b22cdf08b16ca8d3cf50acdb24cacb66d4089545ca1413 |
|
MD5 | d6a3b2389a85dc6aa93876dbf6a808ef |
|
BLAKE2b-256 | f6a62751df922255fdce8076c9ac69998144c40599918c4b157dfb0bead6b676 |