Django : How can I see a list of urlpatterns?

后端 未结 16 1747
有刺的猬
有刺的猬 2020-11-29 19:36

How can I see the current urlpatterns that \"reverse\" is looking in?

I\'m calling reverse in a view with an argument that I think should work, but doesn\'t. Any wa

16条回答
  •  一个人的身影
    2020-11-29 19:59

    Django >= 2.0 List Solution

    adopted from @CesarCanassa

    from django.conf import settings
    from django.urls import URLPattern, URLResolver
    
    URLCONF = __import__(settings.ROOT_URLCONF, {}, {}, [''])
    
    def list_urls(patterns, path=None):
        """ recursive """
        if not path:
            path = []
        result = []
        for pattern in patterns:
            if isinstance(pattern, URLPattern):
                result.append(''.join(path) + str(pattern.pattern))
            elif isinstance(pattern, URLResolver):
                result += list_urls(pattern.url_patterns, path + [str(pattern.pattern)])
        return result
    

提交回复
热议问题