Я работаю над проектом Django, и я хочу отправить сигнал, когда что-то добавляется к некоторому связанному с моделью набору. Например, у нас есть владелец, у которого есть ряд предметов коллекционирования и каждый раз метода owner.collectable_set.add(something)
становится названным, я хочу сигнал как collectable_added
или что-то. Сигналы чисты мне, но я не знаю, какой менеджер (?) содержит "добавить" метод, который я хочу переопределить.
Редактирование для запроса Xavier для предоставления больше подробной информации: можно легко переопределить модель save
метод, путем простого определения его и вызова "супер -save
"таким образом, это правильно сохраняется с некоторой дополнительной функциональностью. Но интересно, где переопределить связанный набор add
метод.
Черт возьми я думаю, что не ввел дальнейшие детали, но я думаю, что должно быть ясно, что я хочу сделать даже из первого абзаца.
Редактирование 2: Это - метод, который я хочу переопределить. Рекомендуется сделать так, или Вы предлагаете другой способ поместить отправку сигнала?
Это решение, которое я нашел, сигнал m2m_changed
. Мне потребовалось немало поисков и чтений. Более того, я обнаружил, что расширить класс ManyRelatedManager
нетривиально, что было бы другим вариантом. Но с сигналом m2m_changed
я могу полагаться на встроенные функции, что в большинстве случаев является предпочтительным способом.