Skip to content

Commit 6673ef2

Browse files
authored
Merge pull request #145 from StyXman/master
Possible fix for #144.
2 parents 20d7c37 + 1b4e177 commit 6673ef2

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

rest_framework_docs/api_docs.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ def __init__(self, drf_router=None):
2121
else:
2222
self.get_all_view_names(root_urlconf.urlpatterns)
2323

24-
def get_all_view_names(self, urlpatterns, parent_pattern=None):
24+
def get_all_view_names(self, urlpatterns, parent_regex=''):
2525
for pattern in urlpatterns:
2626
if isinstance(pattern, RegexURLResolver):
27-
parent_pattern = None if pattern._regex == "^" else pattern
28-
self.get_all_view_names(urlpatterns=pattern.url_patterns, parent_pattern=parent_pattern)
27+
regex = '' if pattern._regex == "^" else pattern._regex
28+
self.get_all_view_names(urlpatterns=pattern.url_patterns, parent_regex=parent_regex + regex)
2929
elif isinstance(pattern, RegexURLPattern) and self._is_drf_view(pattern) and not self._is_format_endpoint(pattern):
30-
api_endpoint = ApiEndpoint(pattern, parent_pattern, self.drf_router)
30+
api_endpoint = ApiEndpoint(pattern, parent_regex, self.drf_router)
3131
self.endpoints.append(api_endpoint)
3232

3333
def _is_drf_view(self, pattern):

rest_framework_docs/api_endpoint.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77

88
class ApiEndpoint(object):
99

10-
def __init__(self, pattern, parent_pattern=None, drf_router=None):
10+
def __init__(self, pattern, parent_regex=None, drf_router=None):
1111
self.drf_router = drf_router
1212
self.pattern = pattern
1313
self.callback = pattern.callback
1414
# self.name = pattern.name
1515
self.docstring = self.__get_docstring__()
16-
self.name_parent = simplify_regex(parent_pattern.regex.pattern).strip('/') if parent_pattern else None
17-
self.path = self.__get_path__(parent_pattern)
16+
self.name_parent = simplify_regex(parent_regex).strip('/') if parent_regex else None
17+
self.path = self.__get_path__(parent_regex)
1818
self.allowed_methods = self.__get_allowed_methods__()
1919
# self.view_name = pattern.callback.__name__
2020
self.errors = None
@@ -26,8 +26,8 @@ def __init__(self, pattern, parent_pattern=None, drf_router=None):
2626

2727
self.permissions = self.__get_permissions_class__()
2828

29-
def __get_path__(self, parent_pattern):
30-
if parent_pattern:
29+
def __get_path__(self, parent_regex):
30+
if parent_regex:
3131
return "/{0}{1}".format(self.name_parent, simplify_regex(self.pattern.regex.pattern))
3232
return simplify_regex(self.pattern.regex.pattern)
3333

0 commit comments

Comments
 (0)