Skip to main content

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

django-date-history-view-preview

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


Download files

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

Source Distribution

django-data-history-0.1.9.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

django_data_history-0.1.9-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

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

Hashes for django-data-history-0.1.9.tar.gz
Algorithm Hash digest
SHA256 72030985e159fabff8f602e1837e30b1a7dc79f067ad8e4a66433cbe25e6b694
MD5 c540a456d702e4573f7a6f675ddab5b3
BLAKE2b-256 377c8bce5afddf7b8cb1697d519b349e6020d3db00eef0141b3d49b7d5c329c4

See more details on using hashes here.

File details

Details for the file django_data_history-0.1.9-py3-none-any.whl.

File metadata

File hashes

Hashes for django_data_history-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 7e7693b7e17d484e5a5ef1d4b4747e4a7e8556d25c64869d4ae1da2568a85ea3
MD5 5d39f2d7bae3f2d2985fcba6f34f1f30
BLAKE2b-256 7a4ff9efe0897e72342b6156a0b4563b94d7b23b97278e1547342579630ca8bc

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