Как вернуть код состояния 400 из пользовательского промежуточного ПО в django?

Я пытаюсь написать пользовательское промежуточное ПО, которое выполняет некоторую операцию над запросом для проверки его валидности и, если запрос недействителен, возвращает код состояния плохого запроса 400, даже не продвигаясь вперед.

from django.http import HttpResponseBadRequest


class VersionCheckMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        meta = request.META
        client = meta.get('HTTP_X_APP_CLIENT', None)
        if client == 'ios':
            app_version = (
                int(meta['HTTP_X_IOS_APP_VERSION'])
                if meta.get('HTTP_X_IOS_APP_VERSION')
                else int(meta.get('HTTP_X_APP_VERSION', 0))
            )
            if app_version < 30:
                return HttpResponseBadRequest

        elif client == 'android':
            app_version = int(meta['HTTP_X_APP_VERSION'])
            if app_version < 188:
                return HttpResponseBadRequest
        elif client == 'web':
            app_version = int(
                meta['HTTP_X_APP_PLATFORM_VERSION']
                if meta.get("HTTP_X_APP_PLATFORM_VERSION")
                else meta['HTTP_X_APP_VERSION']
            )
            if app_version < 188:
                return HttpResponseBadRequest

        response = self.get_response(request)
        return response


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