Can I include two different urls to the same url pattern? Example [ path('api/', include('quiz.urls')), path('api/', include('user.urls')) ]

Viewed 80

127.0.0.1:8000/api/ Is containing only urls from the second app, but I linked both url modules to the same pattern. Is it even possible to do that?

first app:

from django.urls import path, include
from . import views
from rest_framework import routers

router = routers.DefaultRouter()
router.register(r'users', viewset=views.UserProfileViewSet)

urlpatterns = [
    path('', include(router.urls))
]

second app:

from django.urls import path, include
from . import views

from rest_framework import routers

router = routers.DefaultRouter()
router.register(r'question', viewset=views.QuestionViewSet)
router.register(r'review', viewset=views.ReviewViewSet, basename='review')

urlpatterns = [
    path('', include(router.urls))
]

main:

from django.contrib import admin
from django.urls import path, include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include('quiz.urls')),
    path('api/', include('user.urls'))
]
1 Answers

I belive you need to have this in your main url file:

api_urlpatterns = [
    path('quiz/', include('quiz.urls', namespace='quiz')),
    path('user/', include('user.urls', namespace='user')),]

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include((api_urlpatterns , 'api'), namespace='api')),
]
Related