在django2.1.5和DRF 3.9.1中,我试图添加不能使用的router.urls命名空间。
path('api/v2/', include(router.urls, namespace="v2"))
Run Code Online (Sandbox Code Playgroud)
我的终端中的错误是
“在include()中指定名称空间而不提供app_name'django.core.exceptions.ImproperlyConfigured:不支持在include()中指定名称空间而不提供app_name。在包含的模块中设置app_name属性,或传递2包含模式列表和app_name的元组”
我为命名空间设置app_name时,找不到任何合适的解决方案。如何在router.urls上使用名称空间,或者在Django 2版本中无法使用它?
尝试添加app_name,但不能解决我的问题
这是我的代码。
config.urls.py
from django.urls import path, include
from django.contrib import admin
from rest_framework import routers
from project.courses import views
router = routers.SimpleRouter()
router.register(r'courses', views.CourseViewSet)
router.register(r'reviews', views.ReviewViewSet)
urlpatterns = [
path('admin/', admin.site.urls),
path('api-auth/', include('rest_framework.urls')),
path('api/v1/courses/', include('project.courses.urls', namespace='courses')),
path('api/v2/', include(router.urls, namespace="v2")),
]
Run Code Online (Sandbox Code Playgroud)
courses.urls.py
from django.urls import path
from . import views
app_name = 'project.courses'
urlpatterns = [
path('', views.ListCreateCourse.as_view(), name='course_list'),
path('<int:pk>', views.RetrieveUpdateDestroyCourse.as_view(),
Run Code Online (Sandbox Code Playgroud)
name ='course_detail'),path('/ reviews /',views.ListCreateReview.as_view(),name ='review_list'),path('/ reviews /',views.RetrieveUpdateDestroyReview.as_view(),name ='review_detail '),]
这是我要编写的代码。 …