Django ViewSet ModuleNotFoundError: No module named 'project name'

Django ViewSet ModuleNotFoundError: No module named 'project name'

我正在尝试使用 ModelViewSet 来显示用户,但出于某种原因,Django 似乎不喜欢 project/urls.py 中的 UserViewSet 导入。似乎是一个非常愚蠢的错误,但我已经坚持了一段时间并且令人沮丧。据我所知,我的代码没有任何错误,导入功能完全正常。我错过了什么吗?

Django 版本 2.2.13

project/urls.py

from django_backend.user_profile.views import UserViewSet

router = routers.DefaultRouter()
router.register('user', UserViewSet)

urlpatterns = [
    path('accounts/', include(router.urls)),
]

userprofile/views.py

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()#.order_by('-date_joined')
    serializer_class = UserSerializer

错误

from django_backend.user_profile.views import UserViewSet
ModuleNotFoundError: No module named 'django_backend'

项目结构

python 解释器在 sys.path 中列出的目录中搜索模块。 Touc 会快速打印 sys.path 以检查是否列出了 'reactjs-comeon'。

根据您运行您的文件的方式,它可能不会包含在内。例如,如果你 运行 project> python urls.py 就不会了。您可以手动将目录附加到 sys.path 作为快速解决方案。

总的来说,我建议您阅读 relative/absolute 进口和包装 https://docs.python.org/3/reference/import.html

从评论中,我们发现您问题的直接答案是:您正在导入 django_backend,这是您项目的根目录,但不是正式的 Python package sys.path 中存在,因此无法导入。

由于 Django 将 sys.path 设置为项目的根目录,因此您需要导入没有 django_backend 部分的 user_profile.views

from user_profile.views import UserViewSet

完成后,您可以考虑配置 PyCharm 以了解 django_backend 文件夹是您的源目录。这将告诉 PyCharm 在哪里寻找 Python 代码,这样它就不会显示尝试从 Django 目录导入模块的错误。