Skip to content

Commit 22bab1d

Browse files
authored
Update view.py (#1)
This relays on axnsan12#730 and axnsan12#499 but with the newest code, as I need to implement it in my own project
1 parent d73cffc commit 22bab1d

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

src/drf_yasg/inspectors/view.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,13 @@ def get_response_schemas(self, response_serializers):
256256
response = serializer
257257
if hasattr(response, 'schema') and not isinstance(response.schema, openapi.Schema.OR_REF):
258258
serializer = force_serializer_instance(response.schema)
259-
response.schema = self.serializer_to_schema(serializer)
259+
schema = self.serializer_to_schema(serializer)
260+
if self.has_list_response():
261+
schema = openapi.Schema(type=openapi.TYPE_ARRAY, items=schema)
262+
263+
if self.should_page():
264+
schema = self.get_paginated_response(schema) or schema
265+
response.schema = schema
260266
elif isinstance(serializer, openapi.Schema.OR_REF):
261267
response = openapi.Response(
262268
description='',
@@ -266,9 +272,15 @@ def get_response_schemas(self, response_serializers):
266272
response = serializer
267273
else:
268274
serializer = force_serializer_instance(serializer)
275+
schema = self.serializer_to_schema(serializer)
276+
if self.has_list_response():
277+
schema = openapi.Schema(type=openapi.TYPE_ARRAY, items=schema)
278+
279+
if self.should_page():
280+
schema = self.get_paginated_response(schema) or schema
269281
response = openapi.Response(
270282
description='',
271-
schema=self.serializer_to_schema(serializer),
283+
schema=schema,
272284
)
273285

274286
responses[str(sc)] = response

0 commit comments

Comments
 (0)