У меня есть приложение Django, где я разрешаю пользователю импортировать CSV файл с контактными данными (членство #, имя, фамилия и т.д.).
При импорте файла приложение проверяет базу данных для соответствующей записи и либо: 1) вставляет новую запись, если совпадение не существует, или 2) обновляет существующие данные новыми данными.
Мой вопрос: какой лучший способ реализовать функцию отмены, используя Django или прямой Python, чтобы пользователь мог отменить операцию импорта и вернуть несколько записей обратно в исходное состояние?
Мои первоначальные мысли - создать таблицу, подобную этой (псевдокод):
Table HISTORY
unique_id
record_affected_id
old_value
new_value
Затем, если пользователь нажимает "Отменить", я могу найти уникальный_ид, связанный с их транзакцией, и установить каждую запись, затронутую этой транзакцией, на old_value.
Мне интересно, есть ли более простой способ сделать это, которого я пропускаю, или если у кого-то есть опыт с чем-то вроде этого.