【发布时间】:2019-08-21 12:45:47
【问题描述】:
我在我的项目中使用 Django 1.9 和 DRF 3.9.2。在我的 urls.py 中,我使用了这段代码
from django.conf import settings
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/', include('apps.rest_slack.urls', namespace='rest_slack')),
]
我已经在我的 rest_slack-urls.py 中设置了一个路由器
from django.conf.urls import url
from rest_framework import routers
from rest_slack.views import DRSEventView, DRSCommandView
router = routers.DefaultRouter()
router.register(r'web', DRSEventView)
router.register(r'events', DRSCommandView)
urlpatterns = router.urls
当我尝试运行服务器时,它给了我 ModuleNotFoundError: No module named 'apps' 错误。请告诉我可以做些什么改变?
myproject/
|-- slack/
| |-- rest_slack/
| | |-- migrations/
| | | +-- __init__.py
| | |-- __init__.py
| | |-- admin.py
| | |-- apps.py
| | |-- models.py
| | |-- tests.py
| | |-- urls.py
| | +-- views.py
| |-- slack/
| | |-- __init__.py
| | |-- settings.py
| | |-- urls.py
| | |-- wsgi.py
| +-- manage.py
+-- venv/
【问题讨论】:
-
你的文件夹结构是什么?
-
与此有关吗? @AdamBarnes
-
非常好!当您将一个带点的字符串作为第一个参数传递给
include()时,它会尝试导入该路径。如果import apps.rest_slack.urls不起作用,您的include()也不起作用。要确定要使用的正确字符串,需要查看您的文件夹结构。 -
你能告诉我如何通过 mac 中的命令提示符查看它吗? @AdamBarnes
-
我已经更新了,请检查。 @AdamBarnes
标签: django django-rest-framework django-views django-urls