aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
authorTom Christie2013-08-23 14:58:06 +0100
committerTom Christie2013-08-23 14:58:06 +0100
commit005f475c6af023cc7c75cf38d3a89e22638e5d84 (patch)
treeb3be3f4b664eafe24053c020995796f936066c5a /rest_framework
parentf54fc3a76bdb872eb3b0ba562db08e3fd7c879af (diff)
downloaddjango-rest-framework-005f475c6af023cc7c75cf38d3a89e22638e5d84.tar.bz2
Don't consume .json style suffixes with routers.
When trailing slash is false, the lookup regex should not consume '.' characters. Fixes #1057.
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/routers.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/rest_framework/routers.py b/rest_framework/routers.py
index 930011d3..3fee1e49 100644
--- a/rest_framework/routers.py
+++ b/rest_framework/routers.py
@@ -189,7 +189,11 @@ class SimpleRouter(BaseRouter):
Given a viewset, return the portion of URL regex that is used
to match against a single instance.
"""
- base_regex = '(?P<{lookup_field}>[^/]+)'
+ if self.trailing_slash:
+ base_regex = '(?P<{lookup_field}>[^/]+)'
+ else:
+ # Don't consume `.json` style suffixes
+ base_regex = '(?P<{lookup_field}>[^/.]+)'
lookup_field = getattr(viewset, 'lookup_field', 'pk')
return base_regex.format(lookup_field=lookup_field)