首页 > 解决方案 > 更改了 Django 3.2 中的导入结构?

问题描述

我刚刚使用 v3.2 打开了一个新的 Djangoproject 并尝试像往常一样导入我的应用程序,当我在我的一个应用程序上遇到一个不正确配置的异常时。

脚步:

  1. 创建并激活 env,pip install django(没有版本号默认为 v3.2 目前)
  2. django-admin startproject 项目
  3. mkdir 项目\应用程序,mkdir 项目\应用程序\核心
  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 以检查是否有其他问题,但这种方法运行良好。

有没有人有同样的问题或有解决方案?

谢谢

标签: pythondjango

解决方案


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

使用 Django >= 3.1,您需要完全限定名称:

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

似乎也适用于 3.0。


推荐阅读