aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/api-guide/routers.md2
-rw-r--r--rest_framework/routers.py7
-rw-r--r--rest_framework/tests/test_routers.py2
3 files changed, 4 insertions, 7 deletions
diff --git a/docs/api-guide/routers.md b/docs/api-guide/routers.md
index f3beabdd..6b4ae6db 100644
--- a/docs/api-guide/routers.md
+++ b/docs/api-guide/routers.md
@@ -83,7 +83,7 @@ This behavior can be modified by setting the `trailing_slash` argument to `False
Trailing slashes are conventional in Django, but are not used by default in some other frameworks such as Rails. Which style you choose to use is largely a matter of preference, although some javascript frameworks may expect a particular routing style.
-With `trailing_slash` set to True, the router will match lookup values containing any characters except slashes and dots. When set to False, dots are allowed. To restrict the lookup pattern, set the `lookup_field_regex` attribute on the viewset. For example, you can limit the lookup to valid UUIDs:
+The router will match lookup values containing any characters except slashes and period characters. For a more restrictive (or lenient) lookup pattern, set the `lookup_field_regex` attribute on the viewset. For example, you can limit the lookup to valid UUIDs:
class MyModelViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):
lookup_field = 'my_model_id'
diff --git a/rest_framework/routers.py b/rest_framework/routers.py
index 8766ecb2..df1233fd 100644
--- a/rest_framework/routers.py
+++ b/rest_framework/routers.py
@@ -224,11 +224,8 @@ class SimpleRouter(BaseRouter):
try:
lookup_value = viewset.lookup_value_regex
except AttributeError:
- if self.trailing_slash:
- lookup_value = '[^/]+'
- else:
- # Don't consume `.json` style suffixes
- lookup_value = '[^/.]+'
+ # Don't consume `.json` style suffixes
+ lookup_value = '[^/.]+'
return base_regex.format(
lookup_prefix=lookup_prefix,
lookup_field=lookup_field,
diff --git a/rest_framework/tests/test_routers.py b/rest_framework/tests/test_routers.py
index 0f6d62c7..e41da57f 100644
--- a/rest_framework/tests/test_routers.py
+++ b/rest_framework/tests/test_routers.py
@@ -152,7 +152,7 @@ class TestTrailingSlashIncluded(TestCase):
self.urls = self.router.urls
def test_urls_have_trailing_slash_by_default(self):
- expected = ['^notes/$', '^notes/(?P<pk>[^/]+)/$']
+ expected = ['^notes/$', '^notes/(?P<pk>[^/.]+)/$']
for idx in range(len(expected)):
self.assertEqual(expected[idx], self.urls[idx].regex.pattern)