为何在管理网站上“m2m_changed”信号从未触发?
我也不知道这是不是个bug,还是我理解错了什么。不过你可以试试这个:
这是一个简单的通用测试:
from django.dispatch import receiver
from django.db.models.signals import m2m_changed
@receiver(m2m_changed)
def test_handler(sender, instance, action, reverse, model, pk_set, **kwargs):
import sys
print>>sys.stderr, action
把这段代码加到你的程序里,然后试着从管理后台编辑一个包含多对多关系的模型。你可以在这个关系中添加或删除一个对象。然后你会发现信号没有触发:S
但是,如果你在命令行里做同样的事情……一切都正常。
有没有人能试试,确认一下这不是我电脑上的超自然现象?
提前谢谢你们。
1 个回答
0
我在我的一个模型上试过,效果很好。如果你能把模型文件的所有代码内容都发出来,那就更有帮助了。