diff options
| author | Tom Christie | 2013-04-26 15:09:55 +0100 | 
|---|---|---|
| committer | Tom Christie | 2013-04-26 15:11:11 +0100 | 
| commit | 018d8b8dced31309196496e625cf8a746b98d65e (patch) | |
| tree | 1bc6d49dc8366233fff62feb577de168fb45bd0a | |
| parent | 8fa79a7fd38dda015afa658084361c6da2856e46 (diff) | |
| download | django-rest-framework-018d8b8dced31309196496e625cf8a746b98d65e.tar.bz2 | |
Bits of cleanup
| -rw-r--r-- | rest_framework/routers.py | 2 | ||||
| -rw-r--r-- | rest_framework/utils/breadcrumbs.py | 30 | 
2 files changed, 22 insertions, 10 deletions
| diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 3a8c4508..33e88a81 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -29,7 +29,7 @@ Route = namedtuple('Route', ['url', 'mapping', 'name', 'initkwargs'])  def replace_methodname(format_string, methodname):      """      Partially format a format_string, swapping out any -    '{methodname}'' or '{methodnamehyphen}'' components. +    '{methodname}' or '{methodnamehyphen}' components.      """      methodnamehyphen = methodname.replace('_', '-')      ret = format_string diff --git a/rest_framework/utils/breadcrumbs.py b/rest_framework/utils/breadcrumbs.py index 8f8e5710..28801d09 100644 --- a/rest_framework/utils/breadcrumbs.py +++ b/rest_framework/utils/breadcrumbs.py @@ -4,25 +4,33 @@ from rest_framework.utils.formatting import get_view_name  def get_breadcrumbs(url): -    """Given a url returns a list of breadcrumbs, which are each a tuple of (name, url).""" +    """ +    Given a url returns a list of breadcrumbs, which are each a +    tuple of (name, url). +    """      from rest_framework.views import APIView      def breadcrumbs_recursive(url, breadcrumbs_list, prefix, seen): -        """Add tuples of (name, url) to the breadcrumbs list, progressively chomping off parts of the url.""" +        """ +        Add tuples of (name, url) to the breadcrumbs list, +        progressively chomping off parts of the url. +        """          try:              (view, unused_args, unused_kwargs) = resolve(url)          except Exception:              pass          else: -            # Check if this is a REST framework view, and if so add it to the breadcrumbs +            # Check if this is a REST framework view, +            # and if so add it to the breadcrumbs              if issubclass(getattr(view, 'cls', None), APIView):                  # Don't list the same view twice in a row.                  # Probably an optional trailing slash.                  if not seen or seen[-1] != view:                      suffix = getattr(view, 'suffix', None) -                    breadcrumbs_list.insert(0, (get_view_name(view.cls, suffix), prefix + url)) +                    name = get_view_name(view.cls, suffix) +                    breadcrumbs_list.insert(0, (name, prefix + url))                      seen.append(view)          if url == '': @@ -30,11 +38,15 @@ def get_breadcrumbs(url):              return breadcrumbs_list          elif url.endswith('/'): -            # Drop trailing slash off the end and continue to try to resolve more breadcrumbs -            return breadcrumbs_recursive(url.rstrip('/'), breadcrumbs_list, prefix, seen) - -        # Drop trailing non-slash off the end and continue to try to resolve more breadcrumbs -        return breadcrumbs_recursive(url[:url.rfind('/') + 1], breadcrumbs_list, prefix, seen) +            # Drop trailing slash off the end and continue to try to +            # resolve more breadcrumbs +            url = url.rstrip('/') +            return breadcrumbs_recursive(url, breadcrumbs_list, prefix, seen) + +        # Drop trailing non-slash off the end and continue to try to +        # resolve more breadcrumbs +        url = url[:url.rfind('/') + 1] +        return breadcrumbs_recursive(url, breadcrumbs_list, prefix, seen)      prefix = get_script_prefix().rstrip('/')      url = url[len(prefix):] | 
