Skip to content

Instantly share code, notes, and snippets.

@chrisglass
Created February 13, 2011 16:42
Show Gist options
  • Save chrisglass/824830 to your computer and use it in GitHub Desktop.
Save chrisglass/824830 to your computer and use it in GitHub Desktop.
Creates a flat list of all your url resolvers in Django
from django.core.urlresolvers import get_resolver
from django.core.urlresolvers import RegexURLResolver, RegexURLPattern
def _recurse_resolver(resolver, prefix=[]):
patterns = []
for obj in resolver.url_patterns:
if isinstance(obj, RegexURLPattern):
patterns.append(prefix + [obj.regex.pattern])
elif isinstance(obj, RegexURLResolver):
patterns += _recurse_resolver(obj, prefix + [obj.regex.pattern])
return patterns
def get_all_url_patterns(url_conf=None):
"""
Returns a list of lists of urlpatterns:
[
[prefix, prefix, pattern],
...
]
"""
resolver = get_resolver(url_conf)
return _recurse_resolver(resolver)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment