Почему второй декоратор вызывается дважды?

У меня есть два декоратора.

@csrf_exempt
@RateLimitMiddleware
def add_user(r):
    if r.method == "POST":
        if r.headers.get("Token") == Token:
            data_dict = json.loads(r.body)
            answer = VerificationCodes.send_code(data_dict.get('email'),
                                                 data_dict.get('username'), data_dict.get('password'))
            return HttpResponse(json.dumps(answer[0]), status=answer[1])
        else:
            return HttpResponse("<h1>I don't know who you are!</h1>", status=401)
    else:
        return HttpResponse("<h1>You picked the wrong method, fool!</h1>", status=405)

В таком порядке второй декоратор вызывается дважды, не знаю ,почему. Если их поменять местами, то не срабатывает отключение проверки CSRF. Код мидлваря приложил ниже. Раньше работало нормально, а щас через пень колоду.

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

    def __call__(self, request):
        ip_address = request.META.get('REMOTE_ADDR')
        key = f'ratelimit_{ip_address}'

        if cache.get(key):
            return HttpResponse("Too many requests", status=429)

        cache.set(key, 1, 2)  # Задаем таймаут в секундах

        response = self.get_response(request)
        return response
Вернуться на верх