更改了Django3.2中的导入结构?
我刚刚用 v3.2 打开了一个新的 Djangoproject 并尝试像往常一样导入我的应用程序,当我的一个应用程序出现 ImproperlyConfigured Exception 时。
脚步:
- 创建并激活 env,pip install django(目前没有版本号默认为 v3.2)
- django-admin startproject 项目
- mkdir 项目应用程序,mkdir 项目应用程序核心
- django-admin startapp core projectappscore
- 必要时迁移
- 转到设置并将“apps.core”添加到 INSTALLED_APPS
结果,当尝试运行服务器时
libsite-packagesdjangoappsconfig.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
核心应用程序.py
class CoreConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'core'
auto_field 似乎是新的,因为它没有集成在早期版本中,但是如果我理解正确的话,这应该不会影响导入。
我返回到 v3.1.3 以检查是否还有其他问题,但是使用这种方法可以正常工作。
有没有人有同样的问题或有解决方案?
谢谢
回答
我遇到了同样的问题,也在一个名为apps.core(巧合)的应用程序上。
对于 3.1/3.2,您需要完全限定名称:
class CoreConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'apps.core'
似乎也适用于 3.0。