From 591c12f1a750768eb0cb7e5998123e1c429b6cb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=20V=C3=AEjdea?= Date: Sun, 9 Sep 2018 23:09:35 +0300 Subject: [PATCH] Fix request_body=no_body handling Fixes #188, #199. --- src/drf_yasg/inspectors/view.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/drf_yasg/inspectors/view.py b/src/drf_yasg/inspectors/view.py index 58516a2..c00a79e 100644 --- a/src/drf_yasg/inspectors/view.py +++ b/src/drf_yasg/inspectors/view.py @@ -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.