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: