Django Rest Framework没有找到节流范围?

时间:2015-08-17 17:57:10

标签: python django rest django-rest-framework

http://www.django-rest-framework.org/api-guide/throttling/中的示例推断,我将以下设置添加到我的DRF设置中:

REST_FRAMEWORK = {
'DEFAULT_THROTTLE_CLASSES': (
    'rest_framework.throttling.AnonRateThrottle',
    'rest_framework.throttling.UserRateThrottle',
    'project.api.throttles.AppEventRateThrottle',
),

'DEFAULT_THROTTLE_RATES': { # 86,400 seconds in a day
    'app_events': '10000/day',
    'anon': '10000/day',
    'user': '10000/day',
},
'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework.authentication.BasicAuthentication',
    'rest_framework.authentication.TokenAuthentication',
),
'EXCEPTION_HANDLER': 'project.api.exception_handler.custom_exception_handler',
}

这是一个简单的AppEventRateThrottle类,位于project.api.throttles

from rest_framework.throttling import AnonRateThrottle

class AppEventRateThrottle(AnonRateThrottle):
     scope = 'app_events'

我试图扼杀的基于函数的简单API视图:

from project.api.throttles import AppEventRateThrottle
@api_view(['POST'])
@throttle_classes([AppEventRateThrottle])
def grouped_event_create(request):
    return Response("Hello, world!")

但是,每次进行此API调用时,我都会

  File "/usr/local/lib/python3.4/dist-packages/rest_framework/throttling.py", line 94, in get_rate
raise ImproperlyConfigured(msg)
 django.core.exceptions.ImproperlyConfigured: No default throttle rate set for 'app_events' scope

似乎无法找到' app_events'密钥在DEFAULT_THROTTLE_RATES字典中,但它已明确定义。

1 个答案:

答案 0 :(得分:0)

如何将@throttle_classes([AppEventRateThrottle])更改为@throttle_classes([AppEventRateThrottle,])

相关问题