如何解决如何重写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 举报,一经查实,本站将立刻删除。