如何在django中跟踪m2m的字段变化?

时间:2014-12-30 09:27:09

标签: python django m2m

我需要像 m2m_changed 信号:

def event_handler(sender, instance, **kwargs):
   pass
m2m_changed.connect(event_handler, sender=MyModel.tags.through)

但我想知道 event_handler

instance.tags 的先前状态

2 个答案:

答案 0 :(得分:2)

我相信你现在已经找到了解决方案。但是对于其他人参考,您可以通过检查kwargs['action'] == "pre_add"kwargs['action'] == "pre_remove"来检查更新,然后再进行任何更新。您可以找到更多详细信息here

答案 1 :(得分:0)

看看Django文档:

https://docs.djangoproject.com/en/dev/ref/signals/#m2m-changed

您应该能够使用信号处理程序的actionpk_set参数来弄清楚发生了什么。