Skip to content

Instantly share code, notes, and snippets.

@yheihei
Created January 13, 2022 07:28
Show Gist options
  • Save yheihei/846b4cbb982e775d0e2b094340f069b7 to your computer and use it in GitHub Desktop.
Save yheihei/846b4cbb982e775d0e2b094340f069b7 to your computer and use it in GitHub Desktop.
djangoでurlのbasename(reverseで使うやつ)のリストを出す方法
from django.urls import get_resolver
root_resolver = get_resolver()
def _join_namespace(a, b):
return (a + ':' if a else '') + (b or '')
def _print_resolver(namespace, resolver):
_namespace = _join_namespace(namespace, resolver.namespace)
for ns, (prefix, res) in resolver.namespace_dict.items():
_print_resolver(_namespace, res)
for n, l in resolver.reverse_dict.items():
if callable(n):
continue
print(_join_namespace(_namespace, n))
_print_resolver('', root_resolver)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment