You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Shop应用的model.py导入Product类到Cart应用的cart.py并解决导入错误

解决ImportError: 尝试的相对导入超出顶级包问题

错误原因

你使用的from ..Shop.models import Product相对导入层级错误,或是直接单独运行cart.py的方式导致Python将Cart目录识别为顶级包,..试图跳出该顶级包从而触发报错。

正确导入方案

方法1:使用绝对导入(推荐)

由于Django项目中Shop应用已在INSTALLED_APPS中注册,直接使用项目内绝对导入路径即可:

from Shop.models import Product

方法2:正确使用相对导入(需注意运行方式)

若坚持使用相对导入,需满足两个前提:

  1. 确保online是项目顶级包(即包含settings.py的目录)
  2. 不要直接运行cart.py文件(比如不要执行python Cart/cart.py),必须通过Django的manage.py启动项目或运行相关命令

此时正确的相对导入语句为:

from ..Shop.models import Product

不过这种方式依赖Django的包结构识别,稳定性不如绝对导入。

额外注意事项

  • 始终通过Django的manage.py执行代码,避免单独运行app内的py文件,否则Python的包路径识别会出现偏差。
  • 检查项目settings.py中的INSTALLED_APPS列表,确认已添加Shop应用,确保Django能正常识别该app。

内容的提问来源于stack exchange,提问作者karim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 17:36:23