所以我有各种各样的信号和处理程序,它们通过应用程序发送.但是,当我执行测试/进入"测试模式"时,我希望禁用这些处理程序.
在测试模式下,是否有特定于Django的方法来禁用信号/处理程序?我可以想出一种非常简单的方法(将处理程序包含在if测试子句中),但我想知道是否有更好的方法内置到Django中?
所以我有各种各样的信号和处理程序,它们通过应用程序发送.但是,当我执行测试/进入"测试模式"时,我希望禁用这些处理程序.
在测试模式下,是否有特定于Django的方法来禁用信号/处理程序?我可以想出一种非常简单的方法(将处理程序包含在if测试子句中),但我想知道是否有更好的方法内置到Django中?
不,没有.不过,您可以轻松地建立条件连接:
import sys
if not 'test' in sys.argv:
signal.connect(listener, sender=FooModel)