Сигнал Django после целой модели был сохранен

У меня есть модель Django с 2 полями ManyToMany . Я хочу обрабатывать данные из модели каждый раз, когда она была сохранена.

Сигнал post_save отправляется до того, как он сохранит отношения ManyToMany , поэтому я не могу использовать этот. Тогда у вас есть сигнал m2m_changed , но поскольку у меня есть 2 поля ManyToMany я не могу быть уверен, на ManyToMany поле ManyToMany я должен поместить сигнал.

Нет ли сигнала, который запускается после того, как все поля ManyToMany сохранены?

One Solution collect form web for “Сигнал Django после целой модели был сохранен”

Я чувствую, что единственным вариантом является обработка данных после каждого m2m_change , так как не представляется событием или сигналом, который отображает «все связанные данные по этой модели закончили экономить».

Если это высокая стоимость, вы можете обрабатывать обработку асинхронно. Когда я столкнулся с подобной ситуацией, я добавил логическое поле модели для обработки состояния, связанного с обработкой (например, MyModel.needs_processing ) и отдельной асинхронной очереди задач (Celery, в моем случае) будет проходить каждую минуту и ​​обрабатывать сброс обработки / состояния.

В вашем случае, если m2m_changed и needs_processing являются False , вы можете установить needs_processing в True и сохранить модель, маркируя ее для обработки по вашей очереди задач. Затем, даже когда второй m2m_changed для другого поля m2m, он не будет нести дублирующие затраты на обработку.

  • Как отобразить «Это много месяцев назад» в Django, используя Humanize?
  • сельдерейное сердцебиение (on_node_lost)
  • Сельдерей - минимизирует потребление памяти
  • Django urlpattern "не соответствует"
  • Запуск супервизора от хоста, сельдерея из виртуального (приложение Django)
  • Развертывание проекта Django в Webfaction
  • Выполнение задачи из PyCharm
  • Как получить текущий экземпляр модели из inlineadmin в Django
  • Python - лучший язык программирования в мире.