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 目录导入模块的错误。
我正在尝试使用 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 目录导入模块的错误。