Как переопределить методы Django many to many field add () и remove ()

Я пытаюсь настроить систему уведомлений о действиях в стиле Facebook с помощью Django-Activity-Stream.

В библиотеке предусмотрен специальный actionсигнал для создания действий. Согласно документации, чтобы вызвать это action,

Вы можете сделать это с помощью настраиваемых форм или переопределив предопределенные методы модели, такие как Model.save(). Логика состоит в том, чтобы просто импортировать сигнал действия и отправить его с вашим актером, глаголом, целью и любыми другими важными аргументами. Например, action.send(request.user, verb='reached level 10')

Однако у меня есть промежуточная сквозная модель, из которой actionсигнал должен быть отправлен. поскольку Model.save() метод не вызывается, когда M2M add() или же remove()вместо этого используются методы, я хочу знать, есть ли способ переопределить эти add() и remove()методы.

Я думал об использовании измененных сигналов M2M, но вскоре понял, что не смогу легко получить доступ к request.user в измененных сигналах M2M. (Мне всегда нужно знать, кто должен использовать request.user для генерации любых полезных уведомлений о деятельности). Я обеспокоен тем, что доступ к экземпляру пользователя в сигнале (например, путем создания отдельного промежуточного программного обеспечения для хранения request.user в потоке) может быть дорогостоящим и небезопасным. Если это надежный вариант, скажите, пожалуйста.

0 ответов