Интеграция администратора¶
Чтобы разрешить просмотр предыдущих версий модели на сайте администратора Django, наследуйте от класса simple_history.admin.SimpleHistoryAdmin
при регистрации вашей модели на сайте администратора.
Это заменит страницу объекта истории на сайте администратора и позволит просматривать и возвращаться к предыдущим версиям модели. Изменения, внесенные в формы изменений администратора, также будут точно отмечать пользователя, внесшего изменение.
При нажатии на объект появляется возможность вернуться к этой версии объекта.
(Объект возвращается в выбранное состояние)
Подобные возвраты добавляются в историю.
Пример интеграции администратора для моделей Poll
и Choice
:
from django.contrib import admin
from simple_history.admin import SimpleHistoryAdmin
from .models import Poll, Choice
admin.site.register(Poll, SimpleHistoryAdmin)
admin.site.register(Choice, SimpleHistoryAdmin)
При изменении модели, отслеживаемой по истории, из интерфейса администратора автоматически записывается пользователь, внесший изменение (см. Отслеживание пользователей).
Отображение пользовательских колонок в представлении списка истории администратора¶
По умолчанию в журнале истории отображается одна строка на каждое изменение, содержащая
ссылка на подробную информацию об объекте в данный момент времени
дата и время, когда объект был изменен
комментарий, соответствующий изменению
автор изменений
Вы можете добавить другие колонки (например, статус объекта, чтобы увидеть, как он развивался), добавив массив полей history_list_display
в класс администратора
from django.contrib import admin
from simple_history.admin import SimpleHistoryAdmin
from .models import Poll, Choice
class PollHistoryAdmin(SimpleHistoryAdmin):
list_display = ["id", "name", "status"]
history_list_display = ["status"]
search_fields = ['name', 'user__username']
admin.site.register(Poll, PollHistoryAdmin)
admin.site.register(Choice, SimpleHistoryAdmin)
Отключение возможности возврата объекта¶
По умолчанию объект может быть возвращен к предыдущей версии. Чтобы отключить эту опцию, обновите настройки следующим образом:
SIMPLE_HISTORY_REVERT_DISABLED=True
Если SIMPLE_HISTORY_REVERT_DISABLED
установлено в True
, кнопка возврата удаляется из формы.