Fix request_body=no_body handling

Fixes #188, #199.
openapi3
Cristi Vîjdea 2018-09-09 23:09:35 +03:00
parent 271918a678
commit 591c12f1a7
1 changed files with 9 additions and 2 deletions

View File

@ -106,7 +106,7 @@ class SwaggerAutoSchema(ViewInspector):
if body_override is not None:
if body_override is no_body:
return None
return no_body
if self.method not in self.body_methods:
raise SwaggerGenerationError("request_body can only be applied to (" + ','.join(self.body_methods) +
"); are you looking for query_serializer or manual_parameters?")
@ -126,6 +126,9 @@ class SwaggerAutoSchema(ViewInspector):
if body_override is None and self.method in self.implicit_body_methods:
return self.get_view_serializer()
if body_override is no_body:
return None
return body_override
def get_request_form_parameters(self, serializer):
@ -192,7 +195,11 @@ class SwaggerAutoSchema(ViewInspector):
:return: response serializer, :class:`.Schema`, :class:`.SchemaRef`, ``None``
"""
return self._get_request_body_override() or self.get_view_serializer()
body_override = self._get_request_body_override()
if body_override and body_override is not no_body:
return body_override
return self.get_view_serializer()
def get_default_responses(self):
"""Get the default responses determined for this view from the request serializer and request method.