-
Notifications
You must be signed in to change notification settings - Fork 184
/
Copy pathviews.py
28 lines (21 loc) · 1008 Bytes
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from django.http import Http404
from django.views.generic.base import TemplateView
from rest_framework_docs.api_docs import ApiDocumentation
from rest_framework_docs.settings import DRFSettings
class DRFDocsView(TemplateView):
template_name = "rest_framework_docs/home.html"
drf_router = None
def get_context_data(self, **kwargs):
settings = DRFSettings().settings
if settings["HIDE_DOCS"]:
raise Http404("Django Rest Framework Docs are hidden. Check your settings.")
context = super(DRFDocsView, self).get_context_data(**kwargs)
docs = ApiDocumentation(drf_router=self.drf_router)
endpoints = docs.get_endpoints()
query = self.request.GET.get("search", "")
if query and endpoints:
endpoints = [endpoint for endpoint in endpoints if query in endpoint.path]
context['query'] = query
context['endpoints'] = endpoints
context['desc_table'] = settings['DESC_TABLE']
return context