如何重写Django多对多字段add和remove方法

问题描述

我正在尝试使用Django-Activity-Stream建立类似于Facebook的活动通知系统。

该库提供了一个特殊的action信号来创建动作。根据文档,要触发此action

您可以通过自定义表单或通过覆盖预定义的模型方法(例如Model.save())来实现。逻辑是简单地导入动作信号,并将其与您的演员,动词​​,目标和任何其他重要参数一起发送。例如,action.send(request.user,verb='reached level 10')

但是,我有一个中间传递模型,必须从中发送action信号。由于改用M2M Model.save()add()方法时不会调用remove()方法,因此我想知道是否有任何方法可以覆盖那些add()和{ {1}}个方法

我曾考虑过使用M2M更改信号,但很快意识到我将无法轻松访问M2M更改信号中的request.user。 (我需要始终知道谁是request.user来生成任何有用的活动通知)。我担心在信号中访问用户实例(例如,通过创建单独的中间件来将request.user存储在线程中)可能会导致成本高昂且不安全。如果这是一个可靠的选择,请告诉我。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)