Функция отмены в Django - создание единого списка действий для отмены изменений в нескольких моделях
Я начинаю добавлять функцию "отмены" в веб-приложение Django, и я не уверен, что это лучший подход.
Я просмотрел некоторые обновляемые пакеты, такие как django-simple-history, но столкнулся с проблемами:
не все из них обрабатывают bulk_update и аналогичные методы, и
поскольку все модальности связаны, и обновление здесь запускает цикл массового обновления там и удаления там, самый простой подход, по-видимому, заключается в отмене одного шага за раз. Пакеты, которые я нашел, хотят обрабатывать каждую модель отдельно, без хронологического списка для всего приложения, поэтому, чтобы правильно откатить изменения, мне нужно запросить каждую запись истории и отсортировать их по дате, а затем откатывать все до тех пор, пока я не достигну нужной позиции.
Это кажется проблематичным, я чувствую, что столкнусь с проблемами, связанными с тем, что что-то не в порядке, или с простыми проблемами скорости при извлечении последних 100 записей для каждого исторического объекта и объединении / сортировке их в хронологический список.
Я склоняюсь к тому, чтобы вести журнал аудита каждого изменения в приложении, помечать элементы для удаления вместо того, чтобы удалять их, и т.д., и в значительной степени внедрять свою собственную систему.
Я становлюсь жертвой "придуманного не здесь"? Есть ли какой-то простой процесс, который я упускаю?
Признателен за помощь