Skip to content

Instantly share code, notes, and snippets.

@Gautamaggrawal
Created January 4, 2022 06:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save Gautamaggrawal/9a8705082bae83efccf87304bba60530 to your computer and use it in GitHub Desktop.
Save Gautamaggrawal/9a8705082bae83efccf87304bba60530 to your computer and use it in GitHub Desktop.
GET ALL VIEWS IN DJANGO APP
from django.conf import settings
from django.urls import URLResolver, URLPattern
root_urlconf = __import__(settings.ROOT_URLCONF) # import root_urlconf module
all_urlpatterns = root_urlconf.urls.urlpatterns # project's urlpatterns
VIEW_NAMES = [] # maintain a global list
def get_all_view_names(urlpatterns):
global VIEW_NAMES
for pattern in urlpatterns:
if isinstance(pattern, URLResolver):
get_all_view_names(pattern.url_patterns) # call this function recursively
elif isinstance(pattern, URLPattern):
view_name = pattern.callback.__name__ # get the view name
VIEW_NAMES.append(view_name) # add the view to the global list
return VIEW_NAMES
get_all_view_names(all_urlpatterns)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment