【问题标题】:How to debug Django 1.8 AppConfig?如何调试 Django 1.8 AppConfig?
【发布时间】:2015-11-08 23:58:38
【问题描述】:

我使用的是 Django 1.8。

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

要连接a signal,这篇文章非常明确:使用AppConfig.ready()。我想我已经正确连接了它,但显然我没有,因为它不起作用。所以,为了看看发生了什么,我故意在我的registrationapp/__init__.py中拼错了配置类的名称:

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'),
        },
    },
}

【问题讨论】:

    标签: django django-registration django-signals django-logging


    【解决方案1】:

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

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

    ...如果正在创建和加载正确的应用配置?

    同样的,在你的应用配置文件中添加一个print()

    我刚刚尝试在我的项目中为 default_app_config 使用一个假名,而 Django 提出了一个 AttributeError,所以我认为确实找不到您的应用程序。

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

    默认情况下,此配置仅向控制台发送 INFO 或更高级别的消息。 Django 不会记录很多这样的消息。设置环境变量 DJANGO_LOG_LEVEL=DEBUG 以查看 Django 的所有调试日志,这非常详细,因为它包括所有数据库查询。

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

    【讨论】:

    • 这行得通,谢谢。我正在使用registrationapp来自定义django-registration-redux包(“注册”应用程序),但我没有在INSTALLED_APPS中包含registrationapp。所以,我把它包括在内,一切都很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 2015-06-28
    • 1970-01-01
    相关资源
    最近更新 更多