Дросселирование Django Rest Framework для каждой группы пользователей
Это кажется таким простым, но невозможно реализовать. Мне нужен дроссель для каждого уровня подписки на API в моем приложении. Я создал файл throttling.py, и он содержит классы дросселей.
views.py
from jet.throttling import BasicRateThrottle, PlatinumRateThrottle
class JetPullViewSet(viewsets.ViewSet):
throttle_classes = [BasicRateThrottle, PlatinumRateThrottle]
permission_classes = [IsAuthenticated]
def list(self, request):
user = self.request.user
queryset = Data.objects.all()
serializer = DataSerializer(queryset, many=True, fields=data_var_fields)
return Response(serializer.data)
throttling.py
from rest_framework.throttling import UserRateThrottle
class PlatinumRateThrottle(UserRateThrottle):
scope = 'platinum'
class BasicRateThrottle(UserRateThrottle):
scope = 'basic'
settings.py
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
],
'DEFAULT_THROTTLE_CLASSES': [
'rest_framework.throttling.UserRateThrottle',
'jet.throttling.PlatinumRateThrottle',
'jet.throttling.BasicRateThrottle',
],
'DEFAULT_THROTTLE_RATES': {
'basic': '5/day',
'platinum': '200/day',
}
}
И ошибка, которую я получаю, следующая: "ImproperlyConfigured at /jet/gribpull/ Не установлена скорость дросселирования по умолчанию для диапазона 'basic'"
Хотя мне кажется, что это довольно четко определено. Я пробую различные комбинации уже несколько дней и ссылаюсь на Django Throttling Docs и бесчисленные сообщения SO. Скорость дросселирования по умолчанию отказывается устанавливаться.
Ваша помощь будет высоко оценена.