我正在尝试从另一个应用程序导入模型类。我的结构如下所示:
mysite/
-- main/
models.py
-- webshop/
models.py
我想将模型类从我的网上商店应用程序导入到main / models.py中。我在main / models.py文件中运行以下命令:
from django.db import models
from ..webshop.models import Item
# Create your models here.
class Test(models.Model):
item = models.ForeignKey(Item, on_delete=models.CASCADE)
在我的文本编辑器中,一切似乎都很好。它会找到合适的应用程序,并找到我需要在那里导入的模型类Item。
运行makemigrations时,出现以下错误:
ValueError:尝试相对导入超出顶级软件包
我在SO上还阅读了其他一些有关如何进行此工作的问题,但无法弄清楚。尝试过:
mysite.webshop.models import Item
也。但是然后我得到了:ModuleNotFoundError:没有名为“ mysite.webshop”的模块。
有人有建议吗?
答案 0 :(得分:0)
基于错误ValueError: attempted relative import beyond top-level package
,我将在您的文本编辑器中假设您当前的工作目录为mysite/
。因此,使用..webshop.models
试图在mysite/
上方上移两个目录,这就是为什么出现错误的原因。
您需要做的是:
from django.db import models
from webshop.models import Item