我需要类似m2m_changed 的信号:
def event_handler(sender, instance, **kwargs):
pass
m2m_changed.connect(event_handler, sender=MyModel.tags.through)
但我想知道event_handler中instance.tags的先前状态
我相信您现在已经找到了解决方案。但是,对于其他参考,您可以通过检查kwargs['action'] == "pre_add"
或kwargs['action'] == "pre_remove"
在任何更新发生之前检查值来做到这一点。您可以在此处找到更多详细信息。
看看 Django 文档:
https://docs.djangoproject.com/en/dev/ref/signals/#m2m-changed
您应该能够使用信号处理程序的action
和pk_set
参数来弄清楚发生了什么。