Search code examples
djangodjango-rest-frameworkdjango-rest-viewsets

Django rest framework router not found


In my application I'm using ModelViewSet, as for urls I used SimpleRouter():

main.urls

urlpatterns = [
    url(r'^teams/', include('team.urls', namespace='teams')),
]

team.urls

router = SimpleRouter()
router.register('', views.TeamViewSet, base_name='teams')
router.register('players', views.PlayersViewSet, base_name='players')

urlpatterns = [
    url(r'^', include(router.urls))
]

I want my urls to be like this: http://.../teams/ and http://.../teams/players/. My problem is when i leave router.register('', views.TeamViewSet, base_name='teams') empty it will get a not found 404 to players url, but if i add anything to the first url e.g: router.register('anything', views.TeamViewSet, base_name='teams'), it will work.

How can i make the urls the way i want and why isn't it working this way?


Solution

  • Change the order of the url's

    router = SimpleRouter()
    router.register('players', views.PlayersViewSet, base_name='players')
    router.register('', views.TeamViewSet, base_name='teams')
    
    urlpatterns = [
        url(r'^', include(router.urls))
    ]