Интеграция администратора

Чтобы разрешить просмотр предыдущих версий модели на сайте администратора Django, наследуйте от класса simple_history.admin.SimpleHistoryAdmin при регистрации вашей модели на сайте администратора.

Это заменит страницу объекта истории на сайте администратора и позволит просматривать и возвращаться к предыдущим версиям модели. Изменения, внесенные в формы изменений администратора, также будут точно отмечать пользователя, внесшего изменение.

../_images/1_poll_history.png

При нажатии на объект появляется возможность вернуться к этой версии объекта.

../_images/2_revert.png

(Объект возвращается в выбранное состояние)

../_images/3_poll_reverted.png

Подобные возвраты добавляются в историю.

../_images/4_history_after_poll_reverted.png

Пример интеграции администратора для моделей 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)
../_images/5_history_list_display.png

Отключение возможности возврата объекта

По умолчанию объект может быть возвращен к предыдущей версии. Чтобы отключить эту опцию, обновите настройки следующим образом:

SIMPLE_HISTORY_REVERT_DISABLED=True

Если SIMPLE_HISTORY_REVERT_DISABLED установлено в True, кнопка возврата удаляется из формы.

../_images/10_revert_disabled.png
Вернуться на верх