有办法列出Django信号吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

有什么方法可以看到在Django设置了哪些信号?

提问于
用户回答回答于

有一个Django应用程序叫做Django-调试-工具栏它在所有Django服务页面的顶部添加了一个小工具栏,提供与页面呈现后端相关的信息,例如执行了多少次查询,每个查询花费了多少时间,等等。它也能打印出信号。我在我的应用程序中不使用信号,所以我从来没有使用过这个功能,但它在那里。

用户回答回答于

它并不是在文档中真正公开的,但是信号只是一个包含接收者列表的类,这些接收器在事件中被调用。可以手动检查此列表:

from django.db.models.signals import *

for signal in [pre_save, pre_init, pre_delete, post_save, post_delete, post_init, post_syncdb]:
    # print a List of connected listeners
    print signal.receivers

扫码关注云+社区