Django,将模型类导入新文件。导入错误尝试在没有已知父项的情况下进行相对导入
Posted
技术标签:
【中文标题】Django,将模型类导入新文件。导入错误尝试在没有已知父项的情况下进行相对导入【英文标题】:Django, importing models class into new file. Import error attempted relative import with no known parent 【发布时间】:2021-10-29 12:25:48 【问题描述】:我正在通过制作一个简单的分析仪表板来学习 Django。我做了 startproject 命令和 startapp 命令,就像教程一样运行。我在 app 文件夹中添加了一个名为 connectionOracle.py 的新文件。 我的文件夹结构是(顶部文件夹是通过 venv 创建的)
AnalysisSite
|AnalysisSite
|coreAnalysis
||models.py
||connectionOracle.py
我在 models.py 文件中有一个名为 WorkOrder 的类。我正在尝试通过执行以下操作将其导入到 connectionOracle.py 文件中
from .models import WorkOrder
然后我转到命令行(在 Windows 上)并导航到 coreAnalysis 文件夹并运行以下命令
python connectionOracle.py
我收到一条错误消息。
ImportError: attempted relative import with no known parent package
我在网上做了一些阅读,我尝试用AnalysisSite.AnalysisSite.coreAnalysis.models
做一个绝对路径
那没有用。我还尝试将连接文件移动到不同的目录,但也没有用。我也尝试进入命令行并输入set DJANGO_SETTINGS_MODULE = AnalysisSite.settings
我还在每个文件夹中放了一个_init_.py
。 (Django自动放入项目目录和app目录)。
我不知道我做错了什么
【问题讨论】:
from coreAnalysis.models import WorkOrder
.
我也试过这个。我收到错误“ModuleNotFoundError:没有名为“coreAnalysis”的模块”我仔细检查了拼写并在不同的情况下(上/下)。我还尝试查看apps.py文件是否有问题,但名称设置为coreAnalysis
根目录和coreAnalysis
目录中是否有__init__.py
文件?
【参考方案1】:
您正在尝试通过脚本文件访问 Django 组件(模型), 在这种情况下,调用者不是 Django 本身(请求不是来自 url 或不同的 django 工具或机制),
无论如何,在您的自定义 python 文件中,即“connectionOracle.py” 在访问模型本身之前尝试执行一些步骤,
以下网址提供了这些步骤:
https://***.com/a/68936419/12662056
############
根据您的项目路径更改项目路径。
希望对你有帮助
【讨论】:
我试过这个并最终得到以下错误:ModuleNotFoundError: No module named 'AnalysisSite'。我尝试了一些不同的路径变体。我还尝试将其直接路径到 coreAnalysis 文件夹,我得到了同样的错误(它说 AnalysisSite 没有被命名)。以上是关于Django,将模型类导入新文件。导入错误尝试在没有已知父项的情况下进行相对导入的主要内容,如果未能解决你的问题,请参考以下文章
Django 上的 MakeMigration 错误 - ImportError:无法从“django.db.models”导入名称“FieldDoesNotExist”