A Django application that allows you to store detailed data in the change log and display the detailed information in object's history view.
Project description
django-data-history
A Django application that allows you to store detailed data in the change log and display the detailed information in object's history view.
Install
pip install django-data-history
Usage
## add app: django_middleware_global_request
## add app: django_middleware_request_id
## add app: django_static_jquery_ui
## add app: django_data_history
## put django_data_history before django.contrib.admin
INSTALLED_APPS = [
...
"django_middleware_global_request",
"django_middleware_request_id",
"django_static_jquery_ui",
'django_data_history',
...
'django.contrib.admin',
...
]
## add middleware: django_middleware_global_request.middleware.GlobalRequestMiddleware
## add middleware: django_middleware_request_id.middlewares.DjangoMiddlewareRequestId
MIDDLEWARE = [
...
"django_middleware_global_request.middleware.GlobalRequestMiddleware",
"django_middleware_request_id.middlewares.DjangoMiddlewareRequestId",
...
]
# default to False, so you must set it to True to enable all models injection.
SAVE_DATA_HISTORIES_FOR_ALL = True
# if SAVE_DATA_HISTORIES_FOR_ALL==False, then only these models will be injected.
# default to empty.
SAVE_DATA_HISTORIES_FOR = [
"your_app1.model_name1"
]
# if SAVE_DATA_HISTORIES_FOR_ALL==True, these models will NOT be injected.
# default to:
# [
# "sessions.session",
# "contenttypes.contenttype",
# "admin.logentry",
# "auth.permission",
# ]
DO_NOT_SAVE_DATA_HISTORIES_FOR = [
"your_app2.model_name2",
]
Deep usage
How to ignore some fields' values?
Some fields' value are inessential so that we want to ignore their changes. Simply add django_data_history_excludes in the model.
class TestModel(models.Model):
django_data_history_excludes = ["mod_time"]
mod_time = models.DateTimeField(auto_now=True)
If only mod_time changed, we are not treat the event as a change event, so that we will not make a new record.
How to save data history in separate table?
Simply add DATA_HISTORY_STORAGE_CLASS
property to the model class.
A new DATA_HISTORY_STORAGE_CLASS
must a subclass of django_data_history.models.DataHistoryBase
.
A DATA_HISTORY_STORAGE_CLASS
can be a real class or a absolute-dot-path
to the real class.
Instance's history view image
Releases
v0.1.0
- First release.
v0.1.1
- Fix ugettext_lazy problem.
v0.1.2
- Add save_data_histories_for_fk_instance to fix inline edit history missing problem.
v0.1.3
- Fix problems that field name has "+" in fields_map.
v0.1.5
- Using django_middleware_request_id instead of implement request_id inside the app.
v0.1.6
- Fix requirements in setup.py.
v0.1.7
- Fix DataHistoryModelAdmin.get_data_histories function problem.
v0.1.8
- Fix problems in working together with django-import-export.
- Add django_data_history_excludes support.
v0.1.9
- Fix OneToOneField problem.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file django-data-history-0.1.9.tar.gz
.
File metadata
- Download URL: django-data-history-0.1.9.tar.gz
- Upload date:
- Size: 13.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72030985e159fabff8f602e1837e30b1a7dc79f067ad8e4a66433cbe25e6b694 |
|
MD5 | c540a456d702e4573f7a6f675ddab5b3 |
|
BLAKE2b-256 | 377c8bce5afddf7b8cb1697d519b349e6020d3db00eef0141b3d49b7d5c329c4 |
File details
Details for the file django_data_history-0.1.9-py3-none-any.whl
.
File metadata
- Download URL: django_data_history-0.1.9-py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e7693b7e17d484e5a5ef1d4b4747e4a7e8556d25c64869d4ae1da2568a85ea3 |
|
MD5 | 5d39f2d7bae3f2d2985fcba6f34f1f30 |
|
BLAKE2b-256 | 7a4ff9efe0897e72342b6156a0b4563b94d7b23b97278e1547342579630ca8bc |