在 Django 中,我的捕获 pre_save 信号的代码运行良好。但是,在 tests.py 中的测试用例中,信号处理程序无法接收任何内容。这个问题有什么提示吗?
- 似乎我的测试用例和信号处理程序位于不同的应用程序中。这是问题的原因吗?
在 Django 中,我的捕获 pre_save 信号的代码运行良好。但是,在 tests.py 中的测试用例中,信号处理程序无法接收任何内容。这个问题有什么提示吗?
似乎我的测试用例和信号处理程序位于不同的应用程序中。这是问题的原因吗?
是的。每个应用程序tests.py
都是原子的。import
您的信号注册代码或在测试中手动连接它们以确保它们正在收听:
您可以将信号处理和注册代码放在您喜欢的任何地方。但是,您需要确保尽早导入它所在的模块,以便在需要发送任何信号之前注册信号处理。
(来自:收听信号,连接接收器功能。)