Django: добавить контрольную сумму на модели
В приложении Django мне нужно проверить целостность данных (то есть я хочу обнаружить, изменил ли кто-либо содержимое записи извне приложения (например, путем изменения данных вручную в БД]).
Моя идея состоит в том, чтобы добавить "контрольную сумму" для каждого экземпляра модели (либо дополнительного поля в модели, либо в связанной модели "контрольной суммы").
Итак, у меня есть два вопроса:
- Это хорошее решение?
- Есть ли какое-нибудь приложение django, готовое для этой цели? (Я ничего не нашел)
Спасибо
1 ответ
Я считаю, что это хорошее решение. Вы могли бы создать Checksum
модель с Generic Foreign Key
, а затем создать слушателя для post_save
сигнал, чтобы обновить контрольную сумму сохраненного объекта. Но вам все равно придется рассмотреть массовые обновления в Django и изменить настройки по умолчанию для ваших моделей. Manager
s, чтобы сделать атомарные обновления на наборах запросов.
Я делаю что-то похожее, чтобы отслеживать все модели с UUID в моем проекте.