Не работают пользовательские классы дросселирования Django Rest Framework

У меня проблемы с настройкой custom throttling с использованием django-restframework для django.
Я создал следующий класс views.py, который содержит представление с этим пользовательским дросселем:

from .custom_throttles import *

@api_view(('GET',))
@throttle_classes([LowLevelThrottle])
def home_stats(request):
  token = request.data['token']

  if token == os.environ['api_token']:
    content = {
      'users' : len(Profile.objects.all()),
      'posts' : len(Post.objects.all()),
      'reactions' : len(PostReaction.objects.all())
    }
  
    return Response(json.dumps(content), status=status.HTTP_200_OK)
  else:
    content = {
      'error' : 'invalid token'
    }
    
    return Response(json.dumps(content), status=status.HTTP_401_UNAUTHORIZED)

Этот пользовательский дроссель импортирован из custom_throttles.py, который выглядит следующим образом:

from rest_framework import throttling

class LowLevelThrottle(throttling.AnonRateThrottle):
  scope = 'll'
  def allow_request(self, request, view):
    if request.method == "GET":
      return True
    return super().allow_request(request, view)

И последнее, но не менее важное: вот как у меня настроены некоторые параметры в моем settings.py файле настройки:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

REST_FRAMEWORK = {
    'DEFAULT_THROTTLE_CLASSES': [
        'rest_framework.throttling.AnonRateThrottle',
        'django_project.custom_throttles.LowLevelThrottle'
    ],
    'DEFAULT_THROTTLE_RATES': {
        'll': '1/second',
    }
}

У меня также есть следующие журналы, которые я могу предоставить, ясно показывающие, как несколько запросов были сделаны в течение этого 1-секундного временного интервала.

[24/Aug/2022 07:43:14] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:23] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:23] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:23] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:24] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:24] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:24] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:24] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:24] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:25] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:25] "GET /homestats HTTP/1.1" 200 51
[24/Aug/2022 07:43:25] "GET /homestats HTTP/1.1" 200 51

Если у вас есть вопросы, не стесняйтесь их задавать!

По совету пользователя https://stackoverflow.com/users/16494437/truegopnik я удалил

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

из файла settings.py.

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