python - 从不同的应用程序导入类时出现 ModuleNotFoundError
问题描述
在我的 django 项目 LibraryManagement 中,我有两个应用程序“书”和“作者”。我正在尝试使用外键建立两个应用程序之间的关系。当我尝试在书中导入类作者时,出现错误 ModuleNotFound:No module named 'LibraryManagement.authors'
下面是我的项目结构
LMS
-LibraryManagement
-authors
-book
-LibraryManagement
-venv
来自作者应用程序的 models.py 代码
from django.db import models
class Authors(models.Model):
author_name = models.CharField(max_length=100)
description = models.TextField(max_length=300)
图书应用程序中的models.py代码
from django.db import models
from LibraryManagement.authors.models import Authors
class Book(models.Model):
book_name = models.CharField(max_length=100)
author = models.ForeignKey(Authors)
remarks = models.TextField(max_length=300)
解决方案
您正在包中创建这些文件。python 中的包仅适用于其中的__init__.py
文件。所以,如果你想能够做到:
from LibraryManagement.authors
LibraryManagement 中必须有一个__init__.py
文件。同样的情况也发生在“作者”中。它必须有一个__init__.py
文件,以便您可以将其作为包导入。
该__init__.py
文件可以为空,但它们必须存在。
推荐阅读
- php - 在多维数组中查找重复项并回显它们
- python - 转换为 exe 文件 tkinter 后出现 cx_freeze 错误
- mysql - 从数据库 Mysql/MariaDB 中获取正确的数据集
- python - 套接字 OSError:[WinError 10022]
- python - 如何用 Python 中的变量替换部分函数调用?
- r - GAM 错误:model.frame.default 中的错误 - 可变长度不同(为“day_num”找到)
- python - 无法从 macbook 安装 netaddr
- android - 指针数组,指向程序中的位图
- r - 如何将 Rconsole 位置保存为默认值?
- javascript - 如何在 Vue JS 观察程序中更改对象的属性而没有无限循环?