我在我的项目中使用了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:没有名为‘应用程序’的模块错误。请告诉我可以做哪些更改?
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/
发布于 2019-03-31 08:49:12
欢迎来到Stack Overflow!
当您将一个带点的字符串作为第一个参数传递给include()
时,它会尝试导入该路径。如果import apps.rest_slack.urls
不能工作,你的include()
也不能工作。
从你的文件夹结构来看,你似乎需要使用include('rest_slack.urls', ...)
。
要确认是否是这种情况,您可以在./manage.py shell
中运行import rest_slack.urls
,或者简单地在您的slack/urls.py
中进行更改并查看它是否工作。
发布于 2019-03-31 12:52:36
从你的项目结构看,你的urls应该这样配置:
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('slack.rest_slack.urls', namespace='rest_slack')),
]
或者,如果这不起作用,请尝试:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/', include('myproject.slack.rest_slack.urls', namespace='rest_slack')),
]
您的项目结构将变为myproject.slack.rest_slack.urls.py
。我没有看到任何地方的应用程序文件夹。
https://stackoverflow.com/questions/55436694
复制相似问题