【问题标题】:Changed import structure in Django 3.2?更改了 Django 3.2 中的导入结构?
【发布时间】:2021-07-02 08:44:02
【问题描述】:

我刚刚使用 v3.2 打开了一个新的 Djangoproject,并尝试像往常一样导入我的应用程序,但我的一个应用程序出现了配置不当的异常。

步骤:

  1. 创建并激活 env,pip install django(目前没有版本号默认为 v3.2)
  2. django-admin startproject 项目
  3. mkdir 项目\apps, mkdir 项目\apps\core
  4. django-admin startapp 核心项目\apps\core
  5. 如有必要,请迁移
  6. 转到设置并将“apps.core”添加到 INSTALLED_APPS

结果,尝试运行服务器时

\lib\site-packages\django\apps\config.py", line 246, in create
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Cannot import 'core'. Check that 
'apps.core.apps.CoreConfig.name' is correct.

结构

-- project
  -- apps
    -- core
      -- apps.py
  -- project
  -- manage.py

核心\apps.py

class CoreConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'core'

auto_field 似乎是新的,因为它没有集成在早期版本中,但是如果我理解正确的话,这应该不会影响导入。

我返回到 v3.1.3 以检查是否有其他问题,但使用这种方法可以正常工作。

有人遇到同样的问题或有解决办法吗?

谢谢

【问题讨论】:

    标签: python django


    【解决方案1】:

    我在一个名为 apps.core 的应用程序上也遇到了同样的问题(巧合)。

    对于 3.1/3.2,您需要完全限定名称:

    class CoreConfig(AppConfig):
        default_auto_field = 'django.db.models.BigAutoField'
        name = 'apps.core'
    

    似乎也适用于 3.0。

    【讨论】:

      猜你喜欢
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      相关资源
      最近更新 更多