Logging django models changes.
Project description
Django simple log
Logging model changes on every create/update/delete. Working with django>=1.9 (need JSONField).
TL;DR
Install using pip:
$ pip install django-simple-log
Add to installed apps:
INSTALLED_APPS = (
...
'simple_log',
...
)
Add middleware for detecting user:
MIDDLEWARE = [
...
'simple_log.middleware.ThreadLocalMiddleware',
...
]
Migrate:
$ python manage.py migrate
Add to any __init__.py:
import simple_log
# For track all registered applications, including third-party
simple_log.register()
# Or for concrete model
simple_log.register(Model)
# Or multiple models
simple_log.register(Model, AnotherModel)
# For define log model
simple_log.register(Model, AnotherModel, log_model=CustomLogModel)
Commands
To view which models is tracking:
$ python manage.py view_tracking_models
With option -f you can view which fields is tracking for every model.
Settings
SIMPLE_LOG_MODEL_LIST
Default: ()
If set, than simple_log.register() register only models in the list.
If you use simple_log.register(Model), this setting will be ignored.
SIMPLE_LOG_EXCLUDE_MODEL_LIST
Default: ('admin.LogEntry', 'migrations.Migration', 'sessions.Session', 'contenttypes.ContentType', 'captcha.CaptchaStore')
If set, than simple_log.register() register every model except in the list.
If you use simple_log.register(Model) or SIMPLE_LOG_MODEL_LIST, this setting will be ignored.
SIMPLE_LOG_EXCLUDE_FIELD_LIST
Default: ('id', 'last_login', 'password', 'created_at', 'updated_at')
List of field names which not track.
If you need to define which fields to track for concrete model, you can add one of the properties to model: simple_log_fields = ('id',) or simple_log_exclude_fields = ('password',).
SIMPLE_LOG_ANONYMOUS_REPR
Default: 'Anonymous'
User representation that write to log, if anonymous user changes model.
SIMPLE_LOG_NONE_USER_REPR
Default: 'System'
User representation that write to log, if user not detected (If middleware not working or if model changes from task or console).
SIMPLE_LOG_MODEL
Default: 'simple_log.SimpleLog'
Model for writing logs. If you want to define your own model, you can inheritance from simple_log.SimpleLogAbstract and change this setting.
SIMPLE_LOG_MODEL_SERIALIZER
Default: 'simple_log.models.ModelSerializer'
Class for serializing model fields to json.
SIMPLE_LOG_GET_CURRENT_REQUEST
Default: 'simple_log.utils.get_current_request_default'
Function that return current request. Rewrite this setting if you already have middleware for storing current request.
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
Hashes for django_simple_log-0.0.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 359d72765cc9ec50d8dce85760999f914625a65a56d199da9a295ecf2444d2d9 |
|
MD5 | fa2c47a2bd8192058848d1930e84e430 |
|
BLAKE2b-256 | f2cda4f69bb1324cfd65edfdf3d54f5424dcea4b092bb5132f18795a7eaffe44 |