Skip to main content

Utility to track changes in object models

Project description

=====
Dajngo Model Hisotry
=====

Пакет предназначен для отслеживания изменений объектов моделей. Имеет возможность делать откат изменений объекта и попытку восстановить объект, если он был удален.
Если изменение объекта были проведены скриптом или из консоли, то поле user будет пустым.

=====
Быстрый старт
=====
0. Устанавливаем пакет::

pip install django-model-history2

1. Добавляем его в INSTALLED_APPS::

INSTALLED_APPS = (
...
'model_history'
)

3. Выполняем миграцию::

python manage.py migrate model_history

4. Добавляем декоратор model_hisotry к классу Вашей модели:

.. code-block:: python

from model_history.decorators import model_history

@model_history()
class SomeModel(models.Model):
field_one = models.CharField()
last_modified = models.DateTimeField()


=====
Параметры декоратора model_history
=====
1. ``exclude`` - Принимет список названий полей, которын не нужно отслеживать. По-умолчани []::

@model_hisotry(exclude=['last_modified'])

2. ``related`` - Отслеживать все модели, которы ссылаются на текущую. По-умолчанию False::

@model_history(exclude=['last_modified'], related=True)

3. ``related_exclude`` - Список, связанных моделей, которые надо исключить из отслеживания. По-умолчанию []::

@model_history(exclude=['last_modified'], related=True, related_exclude=['myapp.models.Model2'])

=====
Настройки в settings.py
=====
1. Настройки определяются в словаре с именем ``MODEL_HISTORY_SETTINGS``::

MODEL_HISTORY_SETTINGS = {
'connect': [
{'model': 'django.contrib.auth.models.User', 'exclude': ['last_login'], 'related': True, 'related_exclude': ['django.contrib.admin.models.LogEntry']}
]
}
2. Модели, перечисленные в параметре ``connect`` будут поставлены на отслеживание, с указанными параметрами
3. ``delete_action`` - Должна ли в админке быть функция "удалить выбранные объекты". По-умолчанию False::

MODEL_HISTORY_SETTINGS = {
'delete_action': True
'connect': [
{'model': 'django.contrib.auth.models.User', 'exclude': ['last_login'], 'related': True, 'related_exclude': ['django.contrib.admin.models.LogEntry']}
]
}
4. ``delete_permission`` - Какой параметр у пользователя праверять на соответствие наличия прав на удаление записей из истории::

MODEL_HISTORY_SETTINGS = {
'delete_action': True,
'delete_permission': 'is_superuser',
'connect': [
{'model': 'django.contrib.auth.models.User', 'exclude': ['last_login'], 'related': True, 'related_exclude': ['django.contrib.admin.models.LogEntry']}
]
}
5. ``revert_action`` - Должна ли быть в админке функция "восстановить объект". Эта функция пытается сделать отсену изменений либо восстановить удаленный объект из дампа. По-умолчанию True::

MODEL_HISTORY_SETTINGS = {
'delete_action': True,
'delete_permission': 'is_superuser',
'revert_action': True,
'connect': [
{'model': 'django.contrib.auth.models.User', 'exclude': ['last_login'], 'related': True, 'related_exclude': ['django.contrib.admin.models.LogEntry']}
]
}
6. ``revert_permission`` - Какой параметр у пользователя праверять на соответствие наличия прав на восстановление объекта::

MODEL_HISTORY_SETTINGS = {
'delete_action': True,
'delete_permission': 'is_superuser',
'revert_action': True,
'revert_permission': 'is_superuser',
'connect': [
{'model': 'django.contrib.auth.models.User', 'exclude': ['last_login'], 'related': True, 'related_exclude': ['django.contrib.admin.models.LogEntry']}
]
}

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-model-history2-0.9.0_0.zip (14.4 kB view details)

Uploaded Source

File details

Details for the file django-model-history2-0.9.0_0.zip.

File metadata

File hashes

Hashes for django-model-history2-0.9.0_0.zip
Algorithm Hash digest
SHA256 2260189dbb42f6d1f47fb3c27a57f2ef53a9227971c6f160c412998bfbca9dc1
MD5 0a4efbe0f1630c9e8e2b00f94be940bb
BLAKE2b-256 155773511b92e3c54f11c19361d5dbf0bf2ac68ef6339807b55bf0a74ce9b901

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page