Django4.0.6跨App相对导入报超出顶级包错误求助
Django跨App导入报错求助
基础环境与项目结构
当前开发环境为Django 4.0.6,使用Visual Studio Community 2022作为开发工具,项目目录结构如下:
Project0 ├── Project0 # 项目核心配置目录 │ ├── settings.py │ └── 其余配置文件 ├── App1 │ ├── models.py │ ├── views.py │ └── forms.py └── App2 ├── models.py ├── views.py ├── forms.py └── tables.py
目录层级说明:外层Project0为项目根目录,内层Project0配置目录、App1、App2三者处于同一目录层级。
运行报错信息
启动项目时,App2相关文件抛出如下导入错误:
File "D:\Projects\Django\Project0\App2\urls.py", line 2, in <module> from . import views File "D:\Projects\Django\Project0\App2\views.py", line 5, in <module> from .tables import ProductTable, ProductHTMXtable File "D:\Projects\Django\Project0\App2\tables.py", line 2, in <module> from ..App1.models import List ImportError: attempted relative import beyond top-level package
待解决的核心问题
- 跨App模型导入异常:App2未编写自定义模型,需要引用App1中定义的模型类。初步判断
from ..App1.models import List的相对导入写法有误,但如果去掉路径前缀的两个点,直接使用from App1.models import List导入,编辑器会提示Import could not be resolved解析错误。该提示不会阻断项目正常运行,但会导致无法正确关联引用的模型,丢失代码跳转、智能补全能力。 - App内部相对导入异常:App内常规的相对导入语句
from . import views、from .tables import xxx也会抛出同类导入错误。
此前尝试按照网友Balizok提供的方案修改配置后,出现App1模型无法解析的报错,提示为App1Model could not be resolved error,目前无法定位问题根因,需要协助排查解决。
内容的提问来源于stack exchange,提问作者Meera K
相关产品推荐
相关产品推荐

