У меня есть сигнал предварительного сохранения для одной из моих моделей. Этот сигнал предварительного сохранения выполняет некоторые фоновые действия API, чтобы синдицировать новые и обновленные объекты поставщикам услуг и возвращать нам бессмысленные данные для хранения в качестве ссылок вместо исходных данных.
Методы new и update различаются в API.
В идеале, если бы пользователь выполнял обновление, он удалял бы бессмысленные данные из поля и печатал их. Мой сигнал должен знать, какие поля были обновлены, чтобы отправлять изменения только для этих полей, поскольку отправка всех полей в обновлении будет отправлять бессмысленные ссылки в качестве необработанных данных в дополнение к обновлениям.
Сигнал предварительного сохранения имеет аргумент update_fields
. Я искал некоторые детали и обнаружил, что этот аргумент может включать все поля при выполнении обновления.
Относительно update_fields поскольку в документации мало информации по этому поводу
- При создании объекта что-нибудь передается в update_fields?
- При обновлении объекта все поля передаются в update_fields или только те, которые были обновлены?
Есть ли другие предложения о том, как решить эту проблему? Я знаю, что post_save
имеет аргумент created
, но я бы предпочел работать с данными до их сохранения.