如何调试 Django 1.8 AppConfig?

How to debug Django 1.8 AppConfig?

我正在使用 Django 1.8。

我正在尝试连接 django-registration user_registration signal

连接a signal, this post is pretty explicit: use AppConfig.ready()。我想我已经正确连接了它,但显然我没有,因为它不工作。所以,为了看看发生了什么,我故意在 registrationapp/__init__.py:

中拼错了配置 class 的名称
default_app_config = 'registrationapp.apps.RegistrationAppConfgOOPS'

我没有看到任何错误消息,也没有看到任何消息。

如何判断 registrationapp/__init__.py 是否正在加载,以及是否正在创建和加载正确的应用程序配置?

顺便说一句,我完全按照here所述设置了控制台日志记录,但它并没有向控制台记录太多,不知道为什么。 (它确实记录了 GET 请求,但它们看起来是不同的记录。)

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
        },
    },
}

如何判断 registrationapp/__init__.py 是否正在加载?

一种非常简单的方法是在其中放置顶级 print()。如果已加载,您将看到输出。

...是否正在创建和加载正确的应用程序配置?

同样,在您的应用程序配置文件中添加 print()

我刚刚尝试在我的项目中为 default_app_config 使用虚假名称,Django 引发了 AttributeError,所以我认为确实找不到您的应用程序。

关于日志记录,documentation 是这样说的:

By default, this config only sends messages of level INFO or higher to the console. Django does not log many such messages. Set the environment variable DJANGO_LOG_LEVEL=DEBUG to see all of Django’s debug logging which is very verbose as it includes all database queries.

所以请尝试使用 os.getenv('DJANGO_LOG_LEVEL', 'DEBUG')