Как регистрировать старые и новые данные об обновлениях модели в Django Rest Framework, используя Celery для асинхронной обработки?

Мне нужно регистрировать как старые, так и новые значения полей всякий раз, когда модель обновляется в Django Rest Framework (DRF). Журналы должны быть сохранены в отдельной базе данных или во внешней системе, такой как Elasticsearch. Задача состоит в том, чтобы получить оба значения, не запрашивая базу данных повторно и не влияя на производительность. Я хочу обрабатывать этот процесс ведения журнала асинхронно, используя Celery.

Что я пробовал:

  • Использовал сигналы pre_save и post_save для обнаружения обновлений.
  • Пробовал запросить базу данных, чтобы получить старые данные, но я хочу избежать этого дополнительного запроса.
  • Интегрирован Celery для асинхронной обработки журнала, но я не уверен в наилучшем способе эффективного сбора старых и новых значений.

В чем мне нужна помощь:

  • Как я могу собирать как старые, так и новые данные, не запрашивая базу данных?
  • Как я могу использовать Celery для асинхронной обработки журнала, чтобы избежать проблем с производительностью?
  • Существует ли существующий шаблон или наилучшая практика для ведения журнала изменений в моделях Django?
Вернуться на верх