alex
alex

Reputation: 2541

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?

Upvotes: 3

Views: 2536

Answers (1)

Ganesh Negi
Ganesh Negi

Reputation: 2019

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))
]

Upvotes: 6

Related Questions