django rest 框架中的路径错误:不支持在 include() 中指定命名空间而不提供 app_name
Posted
技术标签:
【中文标题】django rest 框架中的路径错误:不支持在 include() 中指定命名空间而不提供 app_name【英文标题】:Path error in django rest framework : Specifying a namespace in include() without providing an app_name is not supported 【发布时间】:2020-05-19 23:18:47 【问题描述】:在我的 django rest 框架应用程序中,我有 Urls.py
如下:
from django.urls import include, path
from .shipper import*
from .views import *
urlpatterns = [path('shipper/',
include(path('shipperitems/', MasterItemsList.as_view()),
path('shippercreateapi/', shipperCreateAPIView.as_view()),)),
]
当我尝试运行该应用程序时,它给了我以下错误:
django.core.exceptions.ImproperlyConfigured:在 不支持不提供 app_name 的 include()。设置 包含模块中的 app_name 属性,或传递 2 元组 而是包含模式列表和 app_name。
我应该怎么做才能解决这个问题?
【问题讨论】:
在学习djangorestframework
时遇到同样的问题。似乎来自 rest_framework 的教程已经过时了。 django-rest-framework.org/tutorial/quickstart/#urls
【参考方案1】:
检查包含here 的文档。您应该传递参数以包含这样的内容
url(r'^reviews/', include('app_name.urls', 'app_name'), namespace='app_name')),
(credits)
【讨论】:
【参考方案2】:您以错误的方式使用include(...)
函数。 include(...)
通常采用包含 url-patterns 的模块。所以改变你的代码如下,
#root urls.py
from django.urls import include, path
urlpatterns = [
path('shipper/', include('shipper.urls'),
]
和
#/shipper/urls.py
urlpatterns = [
path('shipperitems/', MasterItemsList.as_view()),
path('shippercreateapi/', shipperCreateAPIView.as_view()),)),
]
【讨论】:
以上是关于django rest 框架中的路径错误:不支持在 include() 中指定命名空间而不提供 app_name的主要内容,如果未能解决你的问题,请参考以下文章
django.test.client 上的 Django rest 框架导入错误
从 django rest 框架中的序列化程序发送自定义错误响应?
django框架学习六:优化views.py文件,使用rest_framework中的APIVew和Response返回