В Django Я хотел бы добавить поле «проверено» типа BooleanField
в мои модели, которое должно указывать, был ли текущий экземпляр модели проверен пользователем-сотрудником или нет. Всякий раз, когда поле экземпляра модели, отличное от «проверенного» поля, изменяет проверенное значение поля, должно быть сброшено на False
. Всякий раз, когда было изменено только «проверенное» поле, его значение должно быть принято как есть (большую часть времени True
, но потенциально False
также).
Одной из возможностей будет сброс «проверенного» поле в post-save
обработчиках сигналов с учетом update_fields
, переданных save()
. Однако использование сигналов, по-видимому, считается анти-паттерном почти во всех случаях использования. Вместо этого следует переопределить метод save()
. Но все же при переопределении save
мне придется как-то определять update_fields
вручную. В противном случае у меня нет информации о том, какие поля изменились.
Как мне проще всего реализовать что-то подобное. Я бы предпочел решение, использующее сторонний пакет с пользовательскими взломами или решение без каких-либо зависимостей от других пакетов. Однако использование django-model-utils monitorfield
, django-dirtyfields
для пользовательской реализации или чего-то подобного также будет в порядке.