diff options
| -rw-r--r-- | rest_framework/urlpatterns.py | 27 | 
1 files changed, 14 insertions, 13 deletions
diff --git a/rest_framework/urlpatterns.py b/rest_framework/urlpatterns.py index 0f210e66..47789026 100644 --- a/rest_framework/urlpatterns.py +++ b/rest_framework/urlpatterns.py @@ -6,28 +6,29 @@ from django.core.urlresolvers import RegexURLResolver  def apply_suffix_patterns(urlpatterns, suffix_pattern, suffix_required):      ret = []      for urlpattern in urlpatterns: -        if not isinstance(urlpattern, RegexURLResolver): -            # Regular URL pattern - -            # Form our complementing '.format' urlpattern -            regex = urlpattern.regex.pattern.rstrip('$') + suffix_pattern -            view = urlpattern._callback or urlpattern._callback_str -            kwargs = urlpattern.default_args -            name = urlpattern.name -            # Add in both the existing and the new urlpattern -            if not suffix_required: -                ret.append(urlpattern) -            ret.append(url(regex, view, kwargs, name)) -        else: +        if isinstance(urlpattern, RegexURLResolver):              # Set of included URL patterns              regex = urlpattern.regex.pattern              namespace = urlpattern.namespace              app_name = urlpattern.app_name              kwargs = urlpattern.default_kwargs +            # Add in the included patterns, after applying the suffixes              patterns = apply_suffix_patterns(urlpattern.url_patterns,                                               suffix_pattern,                                               suffix_required)              ret.append(url(regex, include(patterns, namespace, app_name), kwargs)) + +        else: +            # Regular URL pattern +            regex = urlpattern.regex.pattern.rstrip('$') + suffix_pattern +            view = urlpattern._callback or urlpattern._callback_str +            kwargs = urlpattern.default_args +            name = urlpattern.name +            # Add in both the existing and the new urlpattern +            if not suffix_required: +                ret.append(urlpattern) +            ret.append(url(regex, view, kwargs, name)) +      return ret  | 
