Django: добавить контрольную сумму на модели

В приложении Django мне нужно проверить целостность данных (то есть я хочу обнаружить, изменил ли кто-либо содержимое записи извне приложения (например, путем изменения данных вручную в БД]).

Моя идея состоит в том, чтобы добавить "контрольную сумму" для каждого экземпляра модели (либо дополнительного поля в модели, либо в связанной модели "контрольной суммы").

Итак, у меня есть два вопроса:

  1. Это хорошее решение?
  2. Есть ли какое-нибудь приложение django, готовое для этой цели? (Я ничего не нашел)

Спасибо

1 ответ

Я считаю, что это хорошее решение. Вы могли бы создать Checksum модель с Generic Foreign Key, а затем создать слушателя для post_save сигнал, чтобы обновить контрольную сумму сохраненного объекта. Но вам все равно придется рассмотреть массовые обновления в Django и изменить настройки по умолчанию для ваших моделей. Managers, чтобы сделать атомарные обновления на наборах запросов.

Я делаю что-то похожее, чтобы отслеживать все модели с UUID в моем проекте.

Другие вопросы по тегам