From a889bea16e85c8d945009fc26cb2653dea8b8159 Mon Sep 17 00:00:00 2001 From: Xavier Ordoquy Date: Tue, 29 Nov 2016 02:06:26 +0100 Subject: [PATCH] `DefaultRouter` now uses `schemas. SchemaView` instead of its own. --- rest_framework/routers.py | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 25fef3b51..0699a77bb 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -27,7 +27,7 @@ from rest_framework.compat import NoReverseMatch from rest_framework.renderers import BrowsableAPIRenderer from rest_framework.response import Response from rest_framework.reverse import reverse -from rest_framework.schemas import SchemaGenerator +from rest_framework.schemas import SchemaGenerator, SchemaView from rest_framework.settings import api_settings from rest_framework.urlpatterns import format_suffix_patterns @@ -305,30 +305,6 @@ class APIRootView(views.APIView): return Response(ret) -class APISchemaView(views.APIView): - """ - The default basic schema view for DefaultRouter - """ - _ignore_model_permissions = True - exclude_from_schema = True - renderer_classes = None - - @classmethod - def as_view(cls, **initkwargs): - cls.renderer_classes = initkwargs.pop( - 'renderer_classes', cls.renderer_classes - ) - cls.schema_generator = initkwargs.pop('schema_generator') - cls.api_root_dict = initkwargs.pop('api_root_dict') - return super(APIRootView, cls).as_view(**initkwargs) - - def get(self, request, *args, **kwargs): - schema = self.schema_generator.get_schema(request) - if schema is None: - raise exceptions.PermissionDenied() - return Response(schema) - - class DefaultRouter(SimpleRouter): """ The default router extends the SimpleRouter, but also adds in a default @@ -339,7 +315,7 @@ class DefaultRouter(SimpleRouter): root_view_name = 'api-root' default_schema_renderers = [renderers.CoreJSONRenderer, BrowsableAPIRenderer] APIRootView = APIRootView - APISchemaView = APISchemaView + APISchemaView = SchemaView def __init__(self, *args, **kwargs): if 'schema_title' in kwargs: