Skip to content

Commit 51a6c07

Browse files
committed
Allow customizing the SchemaGenerator class for docs
1 parent bd768d6 commit 51a6c07

File tree

2 files changed

+22
-10
lines changed

2 files changed

+22
-10
lines changed

rest_framework/documentation.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,45 +3,49 @@
33
from rest_framework.renderers import (
44
CoreJSONRenderer, DocumentationRenderer, SchemaJSRenderer
55
)
6-
from rest_framework.schemas import get_schema_view
6+
from rest_framework.schemas import SchemaGenerator, get_schema_view
77

88

9-
def get_docs_view(title=None, description=None, schema_url=None, public=True):
9+
def get_docs_view(title=None, description=None, schema_url=None, public=True, generator_class=SchemaGenerator):
1010
renderer_classes = [DocumentationRenderer, CoreJSONRenderer]
1111

1212
return get_schema_view(
1313
title=title,
1414
url=schema_url,
1515
description=description,
1616
renderer_classes=renderer_classes,
17-
public=public
17+
public=public,
18+
generator_class=generator_class,
1819
)
1920

2021

21-
def get_schemajs_view(title=None, description=None, schema_url=None, public=True):
22+
def get_schemajs_view(title=None, description=None, schema_url=None, public=True, generator_class=SchemaGenerator):
2223
renderer_classes = [SchemaJSRenderer]
2324

2425
return get_schema_view(
2526
title=title,
2627
url=schema_url,
2728
description=description,
2829
renderer_classes=renderer_classes,
29-
public=public
30+
public=public,
31+
generator_class=generator_class,
3032
)
3133

3234

33-
def include_docs_urls(title=None, description=None, schema_url=None, public=True):
35+
def include_docs_urls(title=None, description=None, schema_url=None, public=True, generator_class=SchemaGenerator):
3436
docs_view = get_docs_view(
3537
title=title,
3638
description=description,
3739
schema_url=schema_url,
38-
public=public
40+
public=public,
41+
generator_class=generator_class,
3942
)
4043
schema_js_view = get_schemajs_view(
4144
title=title,
4245
description=description,
4346
schema_url=schema_url,
44-
public=public
47+
public=public,
48+
generator_class=generator_class,
4549
)
4650
urls = [
4751
url(r'^$', docs_view, name='docs-index'),

rest_framework/schemas.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -694,11 +694,19 @@ def get(self, request, *args, **kwargs):
694694
return Response(schema)
695695

696696

697-
def get_schema_view(title=None, url=None, description=None, urlconf=None, renderer_classes=None, public=False):
697+
def get_schema_view(
698+
title=None,
699+
url=None,
700+
description=None,
701+
urlconf=None,
702+
renderer_classes=None,
703+
public=False,
704+
generator_class=SchemaGenerator,
705+
):
698706
"""
699707
Return a schema view.
700708
"""
701-
generator = SchemaGenerator(title=title, url=url, description=description, urlconf=urlconf)
709+
generator = generator_class(title=title, url=url, description=description, urlconf=urlconf)
702710
return SchemaView.as_view(
703711
renderer_classes=renderer_classes,
704712
schema_generator=generator,

0 commit comments

Comments
 (0)