File tree Expand file tree Collapse file tree 3 files changed +25
-18
lines changed Expand file tree Collapse file tree 3 files changed +25
-18
lines changed Original file line number Diff line number Diff line change 1+ from django .conf import settings
2+ from django .core .urlresolvers import RegexURLResolver , RegexURLPattern
3+
4+
5+ class ApiDocumentation (object ):
6+ excluded_apps = ["admin" , "drfdocs" ]
7+ root_urlconf = __import__ (settings .ROOT_URLCONF )
8+
9+ def __init__ (self ):
10+ self .view_names = []
11+ self .get_all_view_names (self .root_urlconf .urls .urlpatterns )
12+
13+ def get_all_view_names (self , urlpatterns ):
14+ for pattern in urlpatterns :
15+ print (pattern )
16+ if isinstance (pattern , RegexURLResolver ) and (pattern .app_name not in self .excluded_apps ):
17+ self .get_all_view_names (pattern .url_patterns )
18+ elif isinstance (pattern , RegexURLPattern ):
19+ self .view_names .append (pattern .callback .__name__ )
20+
21+ def get_views (self ):
22+ return self .view_names
Original file line number Diff line number Diff line change 1- from django .conf import settings
21from django .views .generic .base import TemplateView
3- from django . core . urlresolvers import RegexURLResolver , RegexURLPattern
2+ from drfdocs . api_docs import ApiDocumentation
43
54
65class DRFDocsView (TemplateView ):
76
8- root_urlconf = __import__ (settings .ROOT_URLCONF )
97 template_name = "drfdocs/home.html"
10- EXCLUDED_APPS = ["admin" , "drfdocs" ]
11- VIEW_NAMES = []
12-
13- def get_all_view_names (self , urlpatterns ):
14- for pattern in urlpatterns :
15- if isinstance (pattern , RegexURLResolver ):
16- if pattern .app_name not in self .EXCLUDED_APPS :
17- self .get_all_view_names (pattern .url_patterns )
18- elif isinstance (pattern , RegexURLPattern ):
19- view_name = pattern .callback .__name__
20- self .VIEW_NAMES .append (view_name )
21- return self .VIEW_NAMES
228
239 def get_context_data (self , ** kwargs ):
24- self .VIEW_NAMES = []
2510 context = super (DRFDocsView , self ).get_context_data (** kwargs )
26- all_urlpatterns = self . root_urlconf . urls . urlpatterns
27- context ['views' ] = self . get_all_view_names ( all_urlpatterns )
11+ docs = ApiDocumentation ()
12+ context ['views' ] = docs . get_views ( )
2813 return context
You can’t perform that action at this time.
0 commit comments