В django2.1.5 и DRF 3.9.1 я пытаюсь добавить пространство имен router.urls, которое не работает.
path('api/v2/', include(router.urls, namespace="v2"))
Ошибка в моем терминале
"Указание пространства имен в include () без предоставления app_name 'django.core.exceptions.ImproperlyConfigured: указание пространства имен в include () без предоставления app_name не поддерживается. Установить атрибут app_name во включенном модуле или передать 2-кортежсодержащий вместо этого список шаблонов и имя_приложения "
Я не найду подходящего решения, так как я установил имя_приложения для пространства имен.Как я могу использовать пространство имен на router.urls или его нельзя использовать в версии Django 2?
Попытка добавить имя_приложения, но это не решит мою проблему.
Вот мой код.
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")),
]
курсы.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(),
name = 'course_detail'), путь ('/ reviews /', views.ListCreateReview.as_view (), name = 'review_list'), путь ('/ reviews /', views.RetrieveUpdateDestroyReview.as_view (), name = 'review_detail'),]
Вот код, который я хочу написать.
reviews = serializers.HyperlinkedRelatedField(
many=True,
read_only=True,
view_name='v2:review-detail'
)
Я хочу получить доступ к review_detail с пространством имен v2.Спасибо.