diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 39605923d..3424aa526 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -218,16 +218,18 @@ class SimpleRouter(BaseRouter): https://github.com/alanjds/drf-nested-routers """ - base_regex = '(?P<{lookup_prefix}{lookup_url_kwarg}>{lookup_value})' + base_regex = '{pre_lookup_prefix}(?P<{lookup_prefix}{lookup_url_kwarg}>{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') lookup_url_kwarg = getattr(viewset, 'lookup_url_kwarg', None) or lookup_field lookup_value = getattr(viewset, 'lookup_value_regex', '[^/.]+') + pre_lookup_prefix = getattr(viewset, 'pre_lookup_prefix', '') return base_regex.format( lookup_prefix=lookup_prefix, lookup_url_kwarg=lookup_url_kwarg, - lookup_value=lookup_value + lookup_value=lookup_value, + pre_lookup_prefix=pre_lookup_prefix ) def get_urls(self):