diff --git a/src/drf_yasg/inspectors/view.py b/src/drf_yasg/inspectors/view.py index 836dbb7..03c383d 100644 --- a/src/drf_yasg/inspectors/view.py +++ b/src/drf_yasg/inspectors/view.py @@ -1,3 +1,4 @@ +import logging from collections import OrderedDict from rest_framework.request import is_form_media_type @@ -12,6 +13,8 @@ from ..utils import ( ) from .base import ViewInspector +log = logging.getLogger(__name__) + class SwaggerAutoSchema(ViewInspector): def __init__(self, view, path, method, components, request, overrides): @@ -83,7 +86,11 @@ class SwaggerAutoSchema(ViewInspector): """ if not hasattr(self.view, 'get_serializer'): return None - return self.view.get_serializer() + try: + return self.view.get_serializer() + except Exception: + log.warning("view's get_serializer raised exception (%s)", type(self.view).__name__, exc_info=True) + return None def get_request_serializer(self): """Return the request serializer (used for parsing the request payload) for this endpoint.