Сигнал 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, он не будет нести дублирующие затраты на обработку.

  • Как передать несколько значений для одного параметра URL?
  • Как получить URL-адрес ImageField в шаблоне?
  • Как я могу решить UnicodeDecodeError в Django?
  • Как я должен учиться Python?
  • Как получить пользовательские разрешения?
  • Миграции Django - можно ли использовать Юг в середине проекта?
  • Django Admin: использование настраиваемого виджета только для одного поля модели
  • Django 1.4 и NoReverseMatch at / admin / error
  • Отображение пользователей LDAP пользователям Django с помощью Django Auth Ldap
  • как настроить собственное промежуточное программное обеспечение в django
  • Простая программа Django, вызывающая у меня проблемы
  • Python - лучший язык программирования в мире.