From f6a535eb45eb7a3cd26a879cbea6f8a58d2cdc16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=20V=C3=AEjdea?= Date: Fri, 15 Dec 2017 11:14:47 +0100 Subject: [PATCH] Do not attempt to generate a response schema for form-only requests It would probably fail because Schema objects cannot represent files --- src/drf_yasg/inspectors.py | 2 ++ testproj/articles/views.py | 2 +- tests/reference.yaml | 6 ++---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/drf_yasg/inspectors.py b/src/drf_yasg/inspectors.py index 25b029e..0af1459 100644 --- a/src/drf_yasg/inspectors.py +++ b/src/drf_yasg/inspectors.py @@ -225,6 +225,8 @@ class SwaggerAutoSchema(object): default_schema = self.get_request_serializer() default_schema = default_schema or '' + if any(is_form_media_type(encoding) for encoding in self.get_consumes()): + default_schema = '' if default_schema: if not isinstance(default_schema, openapi.Schema): default_schema = self.serializer_to_schema(default_schema) diff --git a/testproj/articles/views.py b/testproj/articles/views.py index dbdad80..a2e090a 100644 --- a/testproj/articles/views.py +++ b/testproj/articles/views.py @@ -54,7 +54,7 @@ class ArticleViewSet(viewsets.ModelViewSet): return Response(serializer.data) @swagger_auto_schema(method='get', operation_description="image GET description override") - @swagger_auto_schema(method='post', request_body=serializers.ImageUploadSerializer, responses={200: 'success'}) + @swagger_auto_schema(method='post', request_body=serializers.ImageUploadSerializer) @detail_route(methods=['get', 'post'], parser_classes=(MultiPartParser,)) def image(self, request, slug=None): """ diff --git a/tests/reference.yaml b/tests/reference.yaml index f986162..d6503a1 100644 --- a/tests/reference.yaml +++ b/tests/reference.yaml @@ -187,8 +187,6 @@ paths: responses: '200': description: '' - schema: - $ref: '#/definitions/Article' consumes: - multipart/form-data tags: @@ -221,8 +219,8 @@ paths: required: true type: file responses: - '200': - description: success + '201': + description: '' consumes: - multipart/form-data tags: