aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/topics/2.4-accouncement.md1
-rw-r--r--rest_framework/routers.py8
2 files changed, 4 insertions, 5 deletions
diff --git a/docs/topics/2.4-accouncement.md b/docs/topics/2.4-accouncement.md
index 0cf50ce9..91472b9c 100644
--- a/docs/topics/2.4-accouncement.md
+++ b/docs/topics/2.4-accouncement.md
@@ -2,3 +2,4 @@
* List/detail routes.
* 1.3 Support dropped, install six for <=1.4.?.
* `allow_none` for char fields
+* `trailing_slash = True` --> `[^/]`, `trailing_slash = False` --> `[^/.]`, becomes simply `[^/]` and `lookup_value_regex` is added.
diff --git a/rest_framework/routers.py b/rest_framework/routers.py
index df1233fd..406ebcf7 100644
--- a/rest_framework/routers.py
+++ b/rest_framework/routers.py
@@ -220,12 +220,10 @@ class SimpleRouter(BaseRouter):
https://github.com/alanjds/drf-nested-routers
"""
base_regex = '(?P<{lookup_prefix}{lookup_field}>{lookup_value})'
+ # Use `pk` as default field, unset set. Default regex should not
+ # consume `.json` style suffixes and should break at '/' boundaries.
lookup_field = getattr(viewset, 'lookup_field', 'pk')
- try:
- lookup_value = viewset.lookup_value_regex
- except AttributeError:
- # Don't consume `.json` style suffixes
- lookup_value = '[^/.]+'
+ lookup_value = getattr(viewset, 'lookup_value_regex', '[^/.]+')
return base_regex.format(
lookup_prefix=lookup_prefix,
lookup_field=lookup_field,