mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-03 05:04:31 +03:00
Allow the default router to have a custom name.
Signed-off-by: Ethan Fremen <ethan@matterport.com>
This commit is contained in:
parent
ae2887ffc4
commit
d89aade343
|
@ -215,6 +215,7 @@ class DefaultRouter(SimpleRouter):
|
|||
"""
|
||||
include_root_view = True
|
||||
include_format_suffixes = True
|
||||
root_view_name = 'api-root'
|
||||
|
||||
def get_api_root_view(self):
|
||||
"""
|
||||
|
@ -244,7 +245,7 @@ class DefaultRouter(SimpleRouter):
|
|||
urls = []
|
||||
|
||||
if self.include_root_view:
|
||||
root_url = url(r'^$', self.get_api_root_view(), name='api-root')
|
||||
root_url = url(r'^$', self.get_api_root_view(), name=self.root_view_name)
|
||||
urls.append(root_url)
|
||||
|
||||
default_urls = super(DefaultRouter, self).get_urls()
|
||||
|
|
|
@ -6,7 +6,7 @@ from rest_framework import serializers, viewsets
|
|||
from rest_framework.compat import include, patterns, url
|
||||
from rest_framework.decorators import link, action
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.routers import SimpleRouter
|
||||
from rest_framework.routers import SimpleRouter, DefaultRouter
|
||||
|
||||
factory = RequestFactory()
|
||||
|
||||
|
@ -148,3 +148,17 @@ class TestTrailingSlash(TestCase):
|
|||
expected = ['^notes$', '^notes/(?P<pk>[^/]+)$']
|
||||
for idx in range(len(expected)):
|
||||
self.assertEqual(expected[idx], self.urls[idx].regex.pattern)
|
||||
|
||||
class TestNameableRoot(TestCase):
|
||||
def setUp(self):
|
||||
class NoteViewSet(viewsets.ModelViewSet):
|
||||
model = RouterTestModel
|
||||
self.router = DefaultRouter()
|
||||
self.router.root_view_name = 'nameable-root'
|
||||
self.router.register(r'notes', NoteViewSet)
|
||||
self.urls = self.router.urls
|
||||
|
||||
def test_router_has_custom_name(self):
|
||||
expected = 'nameable-root'
|
||||
self.assertEqual(expected, self.urls[0].name)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user