У меня есть CRM и API на основе администратора django, которые обновляют мою таблицу Google. Это вызвано сигналами Джанго. Иногда мне нужно отправить запрос один раз с одним изменением строки в электронной таблице. Иногда мне нужно обновить несколько строк. Проблема в том, что сигналы django срабатывают каждый раз, когда изменение регистрируется в БД, но я могу обновить свою электронную таблицу одним запросом.
Например, мне нужно удалить 2 строки:
- Изменение в БД зарегистрировано на 1 строку,
- Запрос отправлен на электронную таблицу,
- Изменение БД зарегистрировано на 2 строки,
- Запрос отправлен на электронную таблицу.
Но мне нужно:
- Изменение в БД, зарегистрированное для 1 строки,
- Изменение в БД, зарегистрированное для 2 строки,
- Запрос отправляется в электронную таблицу.
Все ненужные запросы накапливаются и занимают много времени.
Как зарегистрировать все изменения только один раз, чтобыотправить один запрос?
Дополнительный вопрос. У меня есть 2 модели: Project и ProjectImages. PI связан с P, поэтому, если я удаляю P, то перед его удалением для каждого связанного экземпляра PI я вижу срабатывание сигналов. Вся электронная таблица удалена, и в ней нет необходимости удалять строки, просто чтобы посмотреть, как удаляется пустая электронная таблица.
Как мне избежать сигналов PI и перейти прямо к сигналу P?
Кроме того,Может быть, я могу как-то реализовать асинхронные функции, многопоточность или Celery, чтобы пользователь не ждал? Я действительно не знаю, какой это правильный выбор, но хотел бы узнать ваше мнение, что было бы более подходящим.