5

在 Django 中,我的捕获 pre_save 信号的代码运行良好。但是,在 tests.py 中的测试用例中,信号处理程序无法接收任何内容。这个问题有什么提示吗?

  • 似乎我的测试用例和信号处理程序位于不同的应用程序中。这是问题的原因吗?
4

1 回答 1

5

似乎我的测试用例和信号处理程序位于不同的应用程序中。这是问题的原因吗?

是的。每个应用程序tests.py都是原子的。import您的信号注册代码或在测试中手动连接它们以确保它们正在收听:

您可以将信号处理和注册代码放在您喜欢的任何地方。但是,您需要确保尽早导入它所在的模块,以便在需要发送任何信号之前注册信号处理。

(来自:收听信号,连接接收器功能。)

于 2011-06-12T23:35:57.733 回答