Skip to content

Extend Schema

ApiViewFix

Bases: OpenApiViewExtension

Fixes warning This is graceful fallback handling for APIViews.

Source code in saritasa_drf_tools/open_api/extend_schema.py
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
class ApiViewFix(OpenApiViewExtension):
    """Fixes warning `This is graceful fallback handling for APIViews`."""

    def view_replacement(self):  # noqa: ANN201
        """Generate replacement."""

        class Fixed(self.target_class):  # type: ignore
            """Add needed properties."""

            serializer_class = None
            queryset = None

        return Fixed

view_replacement()

Generate replacement.

Source code in saritasa_drf_tools/open_api/extend_schema.py
 8
 9
10
11
12
13
14
15
16
17
def view_replacement(self):  # noqa: ANN201
    """Generate replacement."""

    class Fixed(self.target_class):  # type: ignore
        """Add needed properties."""

        serializer_class = None
        queryset = None

    return Fixed

fix_api_view_warning(class_to_fix)

Fix warning This is graceful fallback handling for APIViews.

Source code in saritasa_drf_tools/open_api/extend_schema.py
20
21
22
23
24
25
26
27
28
def fix_api_view_warning(class_to_fix: type[APIView]):  # noqa: ANN201
    """Fix warning `This is graceful fallback handling for APIViews`."""

    class FixedApiView(ApiViewFix):
        """Generated fixed class."""

        target_class = f"{class_to_fix.__module__}.{class_to_fix.__name__}"

    return FixedApiView