diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 87e58b015..2d342098c 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -240,7 +240,7 @@ class SimpleRouter(BaseRouter): # consume `.json` style suffixes and should break at '/' boundaries. lookup_field = getattr(viewset, 'lookup_field', 'pk') lookup_url_kwarg = getattr(viewset, 'lookup_url_kwarg', None) or lookup_field - lookup_value = getattr(viewset, 'lookup_value_regex', '[^/.]+') + lookup_value = getattr(viewset, 'lookup_value_regex', '[^/]+') return base_regex.format( lookup_prefix=lookup_prefix, lookup_url_kwarg=lookup_url_kwarg, diff --git a/tests/test_routers.py b/tests/test_routers.py index fee39b2b3..d4a2d421d 100644 --- a/tests/test_routers.py +++ b/tests/test_routers.py @@ -251,7 +251,7 @@ class TestTrailingSlashIncluded(TestCase): self.urls = self.router.urls def test_urls_have_trailing_slash_by_default(self): - expected = ['^notes/$', '^notes/(?P[^/.]+)/$'] + expected = ['^notes/$', '^notes/(?P[^/]+)/$'] for idx in range(len(expected)): assert expected[idx] == self.urls[idx].regex.pattern @@ -266,7 +266,7 @@ class TestTrailingSlashRemoved(TestCase): self.urls = self.router.urls def test_urls_can_have_trailing_slash_removed(self): - expected = ['^notes$', '^notes/(?P[^/.]+)$'] + expected = ['^notes$', '^notes/(?P[^/]+)$'] for idx in range(len(expected)): assert expected[idx] == self.urls[idx].regex.pattern