Save model history
Project description
django-model-history-log
Register fields updates.
Install
Add model_history.apps.ModelHistoryConfig
into your INSTALLED_APPS
#!python
INSTALLED_APPS = [
...
"model_history.apps.ModelHistoryConfig",
...
]
and than run
./manage.py migrate
Configure
Register a model at startup
You can register a model for logging at startup using History.register
helper:
class MyAppConfig(AppConfig):
name = "myapp"
def ready(self):
from model_history.models import History
from django.contrib.auth import get_user_model
History.register(get_user_model(), exclude=["password"])
You can register all models with a snippet like this
class MyAppConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "myapp"
verbose_name = _("My Website")
def ready(self):
from django.contrib.admin.models import LogEntry
from django.contrib.auth import get_user_model
from django.contrib.sessions.models import Session
from model_history.models import History, HistoryLog
User = get_user_model()
History.register(User, exclude=["password"])
for model in apps.get_models():
if model not in [LogEntry, History, HistoryLog, Session, User]:
History.register(model)
Usage
Log a single instance
You can log a single instance changes with the HistoryManager.log()
method:
instance = MyInstance.objects.get(...)
...
History.objects.log(instance)
Params
instance
:models.Model
= instance to logexclude
:list[str] | None
= exclude these fields from loggingserializer_class
:rest_framework.serializers.Serializer | None
= use this serializer instance
Query a log
from django.contrib.auth import get_user_model
history = History.objects.fetch(User.objects.first())
history.logs.all()
fetch()
always returns an History instance, regardless it is saved on db or not.
You must rely on it's pk
value or you should check for logs
.
CHANGES
0.2.0
- Rename project to django-model-history-log (sorry, no migration path)
- Reformat all codebase with black
- Update isort/flake8 config
- Use django JSONField
- Remove default ordering, use only in admin
- Add register/unregister actions
- Add HistoryQuerySet.fetch api
- Save str(source) as {History,HistoryLog}.label
- Add en translations
- Add it translations
0.1.1
- added missing
on_delete
on HistoryRow.history field
0.1.0
- initial relase
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-model-history-log-0.2rc3.tar.gz
.
File metadata
- Download URL: django-model-history-log-0.2rc3.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51add592119baca49ac0ecf9bb7f8ed89a373f6968e93824d0dd98129a3f31d2 |
|
MD5 | a7763b307ab0b857219045536894dd6b |
|
BLAKE2b-256 | 81be6e7979b86356fcd48ead1d79dea465d78d86d79fb4cf0cce5734d76e793e |
File details
Details for the file django_model_history_log-0.2rc3-py3-none-any.whl
.
File metadata
- Download URL: django_model_history_log-0.2rc3-py3-none-any.whl
- Upload date:
- Size: 19.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd3d959328cd0c8406a9a1f47040e9458792911929dc6b1993c4dc45e29e9c8e |
|
MD5 | 32a283559eb837fc74bbc06ad8c61b37 |
|
BLAKE2b-256 | 868b023264cece70d3708cb085f41cbf7ed87153dc32c030ec7cfa08bbefb24f |