Содержимое ответа должно быть отображено, прежде чем к нему можно будет получить доступ

Я пытаюсь сделать пользовательский формат ответа, для этого я сделал нижеуказанный код

middleware

from django.utils.deprecation import MiddlewareMixin
from rest_framework.response import Response
from rest_framework.exceptions import APIException

class CustomResponseMiddleware(MiddlewareMixin):
    def process_response(self, request, response):
        from adminPanel.serializers import MyCustomException

        if not isinstance(response, Response):
            return response

        response.render()

        if 'data' in response.data:
            return response

        response_data = {
            'status': response.status_code,
            'message': 'Success',
            'error': False,
            'data': response.data,
            'error_message': None,
        }

        if isinstance(response, MyCustomException):
            error_message = response.detail.get('error_message', None)
            response_data = {
                'status': response.status_code,
                'message': 'Error',
                'error': True,
                'data': None,
                'error_message': error_message,
            }

        return Response(response_data, status=response.status_code)

в файле setting.py

'adminPanel.middleware.custom_response.CustomResponseMiddleware',

serializers.py

Мой взгляд

class LoginView(generics.GenericAPIView):
    serializer_class = LoginSerializer

    def post(self, request, *args, **kwargs):
        try:
            serializer = self.get_serializer(data=request.data)
            serializer.is_valid(raise_exception=True)
            response_data = serializer.validated_data

            request_source = response_data.get('request_source')
            if request_source == 'web':
                return Response(
                    data=response_data,
                    status=status.HTTP_302_FOUND,  # HTTP status code for redirection
                    headers={'Location': response_data.get('redirect_url')}  # Redirection URL
                )

            return Response(data=response_data, status=status.HTTP_200_OK)
        except MyCustomException as exc:
            # If a custom exception is raised, return the error response
            return Response(data={"error_message": exc.detail}, status=exc.status_code)
        except Exception as e:
            # Handle other exceptions
            error_message = "An unexpected error occurred."
            return Response(data={"error_message": error_message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)

если ответ успешный, то я получаю желаемый ответ следующим образом

{
    "status": 200,
    "message": "Redirect to dashboard",
    "error": false,
    "data": "/dashboard",
    "user_type": "seller"
}

Но если возникает какая-либо ошибка, то я получаю следующее ContentNotRenderedError at /api/login/ Содержимое ответа должно быть отрендерено, прежде чем к нему можно будет получить доступ.

Заранее благодарю за помощь

Вернуться на верх