Commit e407dc7f by Tom Christie Committed by GitHub

Added root_renderers argument (#4323)

parent 306726d9
...@@ -155,6 +155,10 @@ schema URLs include a path prefix. ...@@ -155,6 +155,10 @@ schema URLs include a path prefix.
If you want more flexibility over the schema output then you'll need to consider If you want more flexibility over the schema output then you'll need to consider
using `SchemaGenerator` instead. using `SchemaGenerator` instead.
#### root_renderers
May be used to pass the set of renderer classes that can be used to render the API root endpoint.
## Using SchemaGenerator ## Using SchemaGenerator
The most common way to add a schema to your API is to use the `SchemaGenerator` The most common way to add a schema to your API is to use the `SchemaGenerator`
......
...@@ -283,6 +283,10 @@ class DefaultRouter(SimpleRouter): ...@@ -283,6 +283,10 @@ class DefaultRouter(SimpleRouter):
self.schema_title = kwargs.pop('schema_title', None) self.schema_title = kwargs.pop('schema_title', None)
self.schema_url = kwargs.pop('schema_url', None) self.schema_url = kwargs.pop('schema_url', None)
self.schema_renderers = kwargs.pop('schema_renderers', self.default_schema_renderers) self.schema_renderers = kwargs.pop('schema_renderers', self.default_schema_renderers)
if 'root_renderers' in kwargs:
self.root_renderers = kwargs.pop('root_renderers')
else:
self.root_renderers = list(api_settings.DEFAULT_RENDERER_CLASSES)
super(DefaultRouter, self).__init__(*args, **kwargs) super(DefaultRouter, self).__init__(*args, **kwargs)
def get_api_root_view(self, api_urls=None): def get_api_root_view(self, api_urls=None):
...@@ -294,7 +298,7 @@ class DefaultRouter(SimpleRouter): ...@@ -294,7 +298,7 @@ class DefaultRouter(SimpleRouter):
for prefix, viewset, basename in self.registry: for prefix, viewset, basename in self.registry:
api_root_dict[prefix] = list_name.format(basename=basename) api_root_dict[prefix] = list_name.format(basename=basename)
view_renderers = list(api_settings.DEFAULT_RENDERER_CLASSES) view_renderers = list(self.root_renderers)
schema_media_types = [] schema_media_types = []
if api_urls and self.schema_title: if api_urls and self.schema_title:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment