diff --git a/rest_framework/schemas/openapi.py b/rest_framework/schemas/openapi.py index d37148ea2d2..0af7510cdee 100644 --- a/rest_framework/schemas/openapi.py +++ b/rest_framework/schemas/openapi.py @@ -465,6 +465,13 @@ def _get_request_body(self, path, method): def _get_responses(self, path, method): # TODO: Handle multiple codes and pagination classes. + if method == 'DELETE': + return { + '204': { + 'description': '' + } + } + item_schema = {} serializer = self._get_serializer(path, method) diff --git a/tests/schemas/test_openapi.py b/tests/schemas/test_openapi.py index de8b0f247c9..78a5609dac4 100644 --- a/tests/schemas/test_openapi.py +++ b/tests/schemas/test_openapi.py @@ -264,6 +264,29 @@ class View(generics.GenericAPIView): }, } + def test_delete_response_body_generation(self): + """Test that a view's delete method generates a proper response body schema.""" + path = '/{id}/' + method = 'DELETE' + + class View(generics.DestroyAPIView): + serializer_class = views.ExampleSerializer + + view = create_view( + View, + method, + create_request(path), + ) + inspector = AutoSchema() + inspector.view = view + + responses = inspector._get_responses(path, method) + assert responses == { + '204': { + 'description': '', + }, + } + def test_retrieve_response_body_generation(self): """Test that a list of properties is returned for retrieve item views.""" path = '/{id}/'