Как реализовать функцию «отмены» с помощью Python / Django

У меня есть приложение Django, в котором я разрешаю пользователю импортировать CSV-файл с контактными данными (номер участника, имя, фамилия и т. Д.).

Когда они импортируют файл, приложение проверяет базу данных на соответствие записи и либо: 1) вставляет новую запись, если совпадения не существует, либо 2) обновляет существующие данные новыми данными.

Мой вопрос: : как лучше всего реализовать функцию отмены с помощью Django или прямого Python, чтобы пользователь мог отменить операцию импорта и вернуть несколько записей в их исходное состояние?

Мои первоначальные мысли - создать такую ​​таблицу (псевдокод):

Table HISTORY
   unique_id
   record_affected_id
   old_value
   new_value

Тогда, если пользователь нажимает "Отменить", я могу найти уникальный_id, связанный с их транзакцией, и установить для каждой записи, затронутой этой транзакцией, old_value.

Мне интересно, есть ли более простой способ сделать это, которого мне не хватает, или у кого-то есть опыт с подобным.

14
задан Ben S 18 December 2010 в 19:38
поделиться