diff --git a/README.md b/README.md index 0056af58d..02a20aff2 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ There is a live example API for testing purposes, [available here][sandbox]. # Requirements * Python (2.7, 3.2, 3.3, 3.4, 3.5) -* Django (1.8, 1.9, 1.10) +* Django (1.8, 1.9, 1.10, 1.11) # Installation diff --git a/docs/index.md b/docs/index.md index 306e4f782..9bf36cce7 100644 --- a/docs/index.md +++ b/docs/index.md @@ -88,7 +88,7 @@ continued development by **[signing up for a paid plan][funding]**. REST framework requires the following: * Python (2.7, 3.2, 3.3, 3.4, 3.5) -* Django (1.8, 1.9, 1.10) +* Django (1.8, 1.9, 1.10, 1.11) The following packages are optional: diff --git a/rest_framework/documentation.py b/rest_framework/documentation.py index 6ade12210..48458e188 100644 --- a/rest_framework/documentation.py +++ b/rest_framework/documentation.py @@ -3,10 +3,12 @@ from django.conf.urls import include, url from rest_framework.renderers import ( CoreJSONRenderer, DocumentationRenderer, SchemaJSRenderer ) -from rest_framework.schemas import get_schema_view +from rest_framework.schemas import SchemaGenerator, get_schema_view -def get_docs_view(title=None, description=None, schema_url=None, public=True, patterns=None): +def get_docs_view( + title=None, description=None, schema_url=None, public=True, + patterns=None, generator_class=SchemaGenerator): renderer_classes = [DocumentationRenderer, CoreJSONRenderer] return get_schema_view( @@ -16,10 +18,13 @@ def get_docs_view(title=None, description=None, schema_url=None, public=True, pa renderer_classes=renderer_classes, public=public, patterns=patterns, + generator_class=generator_class, ) -def get_schemajs_view(title=None, description=None, schema_url=None, public=True, patterns=None): +def get_schemajs_view( + title=None, description=None, schema_url=None, public=True, + patterns=None, generator_class=SchemaGenerator): renderer_classes = [SchemaJSRenderer] return get_schema_view( @@ -29,16 +34,20 @@ def get_schemajs_view(title=None, description=None, schema_url=None, public=True renderer_classes=renderer_classes, public=public, patterns=patterns, + generator_class=generator_class, ) -def include_docs_urls(title=None, description=None, schema_url=None, public=True, patterns=None): +def include_docs_urls( + title=None, description=None, schema_url=None, public=True, + patterns=None, generator_class=SchemaGenerator): docs_view = get_docs_view( title=title, description=description, schema_url=schema_url, public=public, patterns=patterns, + generator_class=generator_class, ) schema_js_view = get_schemajs_view( title=title, @@ -46,6 +55,7 @@ def include_docs_urls(title=None, description=None, schema_url=None, public=True schema_url=schema_url, public=public, patterns=patterns, + generator_class=generator_class, ) urls = [ url(r'^$', docs_view, name='docs-index'), diff --git a/rest_framework/routers.py b/rest_framework/routers.py index 3d2649727..fce968aa0 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -316,6 +316,7 @@ class DefaultRouter(SimpleRouter): default_schema_renderers = None APIRootView = APIRootView APISchemaView = SchemaView + SchemaGenerator = SchemaGenerator def __init__(self, *args, **kwargs): if 'schema_title' in kwargs: @@ -342,7 +343,7 @@ class DefaultRouter(SimpleRouter): """ Return a schema root view. """ - schema_generator = SchemaGenerator( + schema_generator = self.SchemaGenerator( title=self.schema_title, url=self.schema_url, patterns=api_urls diff --git a/rest_framework/schemas.py b/rest_framework/schemas.py index 24d56b915..f5daab6eb 100644 --- a/rest_framework/schemas.py +++ b/rest_framework/schemas.py @@ -695,12 +695,15 @@ class SchemaView(APIView): def get_schema_view( - title=None, url=None, description=None, urlconf=None, - renderer_classes=None, public=False, patterns=None): + title=None, url=None, description=None, urlconf=None, renderer_classes=None, + public=False, patterns=None, generator_class=SchemaGenerator): """ Return a schema view. """ - generator = SchemaGenerator(title=title, url=url, description=description, urlconf=urlconf, patterns=patterns) + generator = generator_class( + title=title, url=url, description=description, + urlconf=urlconf, patterns=patterns, + ) return SchemaView.as_view( renderer_classes=renderer_classes, schema_generator=generator, diff --git a/setup.py b/setup.py index 5d14ddf6a..36227938b 100755 --- a/setup.py +++ b/setup.py @@ -95,6 +95,7 @@ setup( 'Framework :: Django :: 1.8', 'Framework :: Django :: 1.9', 'Framework :: Django :: 1.10', + 'Framework :: Django :: 1.11', 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', 'Operating System :: OS Independent',