首页 > 解决方案 > 从不同的应用程序导入类时出现 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)

标签: pythondjangodjango-models

解决方案


您正在包中创建这些文件。python 中的包仅适用于其中的__init__.py文件。所以,如果你想能够做到:

from LibraryManagement.authors

LibraryManagement 中必须有一个__init__.py文件。同样的情况也发生在“作者”中。它必须有一个__init__.py文件,以便您可以将其作为包导入。

__init__.py文件可以为空,但它们必须存在。


推荐阅读