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 not None:
if body_override is no_body: if body_override is no_body:
return None return no_body
if self.method not in self.body_methods: if self.method not in self.body_methods:
raise SwaggerGenerationError("request_body can only be applied to (" + ','.join(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?") "); 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: if body_override is None and self.method in self.implicit_body_methods:
return self.get_view_serializer() return self.get_view_serializer()
if body_override is no_body:
return None
return body_override return body_override
def get_request_form_parameters(self, serializer): def get_request_form_parameters(self, serializer):
@ -192,7 +195,11 @@ class SwaggerAutoSchema(ViewInspector):
:return: response serializer, :class:`.Schema`, :class:`.SchemaRef`, ``None`` :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): def get_default_responses(self):
"""Get the default responses determined for this view from the request serializer and request method. """Get the default responses determined for this view from the request serializer and request method.