Logging model changes on every create/update/delete.
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',
...
]
For django 1.8:
$ pip install django-jsonfield django-transaction-hooks
DATABASES = {
'default': {
'ENGINE': 'transaction_hooks.backends.postgresql_psycopg2',
...
}
}
Migrate:
$ python manage.py migrate
For temporary disable logging:
from simple_log.utils import disable_logging
with disable_logging():
# create/update/delete objects
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.
Default: ()
List of models for logging by label: 'app.Model'.
Default: ('admin.LogEntry', 'migrations.Migration', 'sessions.Session', 'contenttypes.ContentType', 'captcha.CaptchaStore')
List of models for exclude from logging by label: 'app.Model'.
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',)
.
Default: 'Anonymous'
User representation that write to log, if anonymous user changes model.
Default: 'System'
User representation that write to log, if user not detected (If middleware not working or if model changes from task or console).
Default: 'simple_log.SimpleLog'
Model for writing logs. If you want to define your own model, you should inheritance from simple_log.SimpleLogAbstract
and change this setting.
Default: 'simple_log.models.ModelSerializer'
Class for serializing model fields to json.
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.
Default: '_old_instance'
Name of attribute for storing old instance of logging object.