Доступ к переменным параметра URL в пользовательском ScopedRateThrottle - PullRequest
0 голосов
/ 14 октября 2018

Я использую Django Framework и Django REST Framework.

У меня есть конечная точка, которую необходимо регулировать с помощью пары (user, token), при этом user - это пользователь, выполняющий запрос, и tokenявляясь переменной URL, указанной в urls.py

url(r'^api/v2/(?P<token>\w+)/action$', ActionEndpoint.as_view())

, я создал пользовательский ScopedRateThrottle для выполнения этого:

class CustomThrottle(ScopedRateThrottle):
    rate = '2/day'

    def get_cache_key(self, request, view):

        user_id = request.user.pk
        token = (?????????)

        identity = "%s_%s" % (user_id, token)
        cache_key = self.cache_format % {
            'scope': self.scope,
            'ident': identity
        }
        return cache_key

Вопрос: Как мне извлечь переменную token из объекта request в этом сценарии?

1 Ответ

0 голосов
/ 14 октября 2018

Вы должны использовать объект view для извлечения параметров из шаблона url():

token = view.kwargs['token']
...