Как переопределить связанный набор, “добавляет” метод в Django

Я работаю над проектом Django, и я хочу отправить сигнал, когда что-то добавляется к некоторому связанному с моделью набору. Например, у нас есть владелец, у которого есть ряд предметов коллекционирования и каждый раз метода owner.collectable_set.add(something) становится названным, я хочу сигнал как collectable_added или что-то. Сигналы чисты мне, но я не знаю, какой менеджер (?) содержит "добавить" метод, который я хочу переопределить.

Редактирование для запроса Xavier для предоставления больше подробной информации: можно легко переопределить модель save метод, путем простого определения его и вызова "супер -save"таким образом, это правильно сохраняется с некоторой дополнительной функциональностью. Но интересно, где переопределить связанный набор add метод.

Черт возьми я думаю, что не ввел дальнейшие детали, но я думаю, что должно быть ясно, что я хочу сделать даже из первого абзаца.

Редактирование 2: Это - метод, который я хочу переопределить. Рекомендуется сделать так, или Вы предлагаете другой способ поместить отправку сигнала?

6
задан Pops 4 September 2012 в 19:41
поделиться

2 ответа

Я думаю, вы ищете класс RelatedManager .

0
ответ дан 17 December 2019 в 07:01
поделиться

Это решение, которое я нашел, сигнал m2m_changed . Мне потребовалось немало поисков и чтений. Более того, я обнаружил, что расширить класс ManyRelatedManager нетривиально, что было бы другим вариантом. Но с сигналом m2m_changed я могу полагаться на встроенные функции, что в большинстве случаев является предпочтительным способом.

4
ответ дан 17 December 2019 в 07:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: