Мне нужно вызвать любые изменения некоторых моделей. Мои модели: Brand, Product, Package. Package
имеет fk
до Product
и Продукт имеет fk
до Brand
. Поэтому, когда некоторые экземпляры этих моделей меняются или создаются или удаляются, мне нужно отправить сигнал. Могу ли я реализовать его с сигналом post_save
? Я думал, что если я напишу post_save
сигнал для более низкой модели: Package
, то любые изменения с Brand
или Product
будут сработаны. Но это неpost_save сигнал для нескольких связанных моделей
1
A
ответ
0
Почему ваши сигналы не срабатывают? Django's post_save
запускается в конце метода модели save()
(docs). Когда вы обновляете Package
, Product
по-прежнему содержит только ключ к модели Package
. Таким образом, Product
не звонит save()
.
Что вы можете сделать:
- Создайте несколько
post_save
сигналов. - Переопределить модели
save()
метод.
Чтобы связать несколько post_save
сигналов вы просто сделать:
post_save.connect(do_package_stuff, Package, weak=False, dispatch_uid='package_post_save')
post_save.connect(do_product_stuff, Product, weak=False, dispatch_uid='product_post_save')
post_save.connect(do_brand_stuff, Brand, weak=False, dispatch_uid='brand_post_save')
Overridingsave()
легче (и я могу сказать больше recommeneded). Вы можете увидеть this question, если вы заинтересованы в том, что лучше.
Смежные вопросы
- 1. post_save сигнал и отношения
- 2. ember.js: Загрузка нескольких связанных моделей
- 3. post_save сигнал на поле m2m
- 4. Джанго: post_save сигнал и объект запроса
- 5. Когда сигнал «post_save» в django активирован/называется?
- 6. Джанго post_save сигнал посылает устаревшие инлайн FormSets
- 7. используя сигнал post_save обновить ForeignKey полю
- 8. Содержит карту SQL для нескольких связанных моделей Django
- 9. Создать форму для нескольких/двух моделей, не связанных с CakePHP
- 10. Django, post_save recrusion сигнала. Как обойти сигнал обжига
- 11. Фильтрация связанных полиморфных моделей
- 12. Усовершенствованные заводы связанных моделей
- 13. Как запустить Django post_save сигнал в качестве фонового процесса?
- 14. act_as_follower для нескольких моделей
- 15. Yii2 - Сохранение нескольких связанных моделей ActiveRecord в одной форме
- 16. Как запросить модель на основе нескольких связанных моделей
- 17. activerecord найти условия для связанных моделей
- 18. Перегрузка назначения модели для создания связанных моделей
- 19. Создание связанных моделей для создания в Rails?
- 20. Красноречивый: Масштаб для получения связанных моделей?
- 21. Условные проверки Rails ActiveRecord для связанных моделей?
- 22. Отображение атрибутов для связанных моделей во взглядах
- 23. Рельсы: создать действие для связанных моделей
- 24. Rails: Вложенные маршруты для связанных моделей записей
- 25. Правильное использование моделей django.Manager для связанных объектов
- 26. Редактирование связанных моделей rails way
- 27. Проверка моделей связанных с Django
- 28. Изменить порядок связанных моделей laravel
- 29. Правильный способ поворота связанных моделей
- 30. Вставка связанных моделей в Ecto
'post_save' связан с методом' save' 'Model'. Таким образом, он будет выполнен только тогда, когда запускается этот специальный метод 'save'. – Gocht
вы должны написать post_save сигнал для каждой вашей модели –