所以我有各种各样的信号和处理程序,它们通过应用程序发送.但是,当我执行测试/进入"测试模式"时,我希望禁用这些处理程序.

在测试模式下,是否有特定于Django的方法来禁用信号/处理程序?我可以想出一种非常简单的方法(将处理程序包含在if测试子句中),但我想知道是否有更好的方法内置到Django中?

推荐答案

不,没有.不过,您可以轻松地建立条件连接:

import sys

if not 'test' in sys.argv:
    signal.connect(listener, sender=FooModel)

Django相关问答推荐

当使用django-tinymce时,我在哪里指定referer?

在 Django 模板中呈现标签名称而不是整数字段

"" 需要有字段 "id" 的值才能使用这种多对多关系

Django - 将 HTML 输出转换为变量

我的 django 模板布尔变量在 javascript 中没有按预期工作

如何访问 Django Rest Framework 上的自定义 HTTP 请求标头?

测试 Django ModelForm 是否有实例

Django REST 异常

Django:如何从模板调用视图函数?

为用户添加自定义权限

Django 登录到控制台

Python/Django:从 values_list() 创建一个更简单的列表

URL命名空间的一个真实例子

Django Admin:如何在同一视图中显示来自两个不同模型的字段?

Django - 每 x 秒运行一个函数

在 Django 中使用邮箱地址或用户名登录用户

Django 什么是反向关系?

在 Django shell 启动时自动导入模型

ModelForm 上的 Django 和字段集

如何更改模型标签并给它一个自定义名称