16

我正在升级到 django 3.2,但根据它的发行说明,它说:

现在在首次访问时检查 SECRET_KEY 设置的有效值,而不是在首次加载设置时。这允许运行不依赖于 SECRET_KEY 而无需提供值的管理命令。因此,在不提供有效 SECRET_KEY 的情况下调用 configure(),然后继续访问 settings.SECRET_KEY 现在将引发 ImproperlyConfigured 异常。

错误:django.core.exceptions.ImproperlyConfigured: Cannot import 'users'. Check that 'apps.users.apps.UsersConfig.name' is correct.

用户apps.py:

from django.apps import AppConfig

class UsersConfig(AppConfig):
    name = 'users'

我认为该错误是因为它与 django==3.1.7 一起使用。有人可以帮我解决这个问题吗?如何检查我的密钥是否有效,并在需要时生成新密钥?

4

3 回答 3

28

我认为您的错误与SECRET_KEY您问题的变化没有直接关系。

AppConfig.name应该是应用程序的完整 Python 路径。由于您似乎users在模块内部apps,因此您应该使用'apps.users'而不是'users'

class UsersConfig(AppConfig):
    name = 'apps.users'
于 2021-04-12T11:49:59.080 回答
6

我突然在 Django 3.2 中遇到了这个问题。为什么现在我不太确定,但是将其添加到我的 settings.py 文件中为我修复了它。我需要了解造成这种情况的结构性问题。这可能是因为我们的 Django 项目包含许多组合在一起的应用程序。

from django.apps import AppConfig

AppConfig.default = False

https://docs.djangoproject.com/en/3.2/ref/applications/#django.apps.AppConfig.default

您也可以在应用程序级别单独设置。这可能是一个更好的解决方案。我仍然缺少为什么这是必要的推理。

from django.apps import AppConfig


class DashboardConfig(AppConfig):
    name = 'dashboard'
    default = False
于 2021-04-21T22:03:06.583 回答
3

我的解决方案是简单地apps.py完全删除该文件 - Django 现在设法自动找到该应用程序。

于 2021-07-27T17:55:03.107 回答