Django 如何从throttle类访问请求url pk?

Django 如何从throttle类访问请求url pk?,django,django-rest-framework,Django,Django Rest Framework,我是Django的新手,我正在构建一个使用RESTAPI的Django应用程序。我有一个限制类,我想限制用户在一分钟内向同一用户发送超过5个邀请。我发送一个带有URL的用户ID 我应该访问pk以将其用于缓存操作。如何从throttle类访问pk 例如:api/users/3299143165471965406/重新发送邀请电子邮件/ 主键将为:3299143165471965406 视图.py @decorators.action(methods=['post'], detail=Tru

我是Django的新手,我正在构建一个使用RESTAPI的Django应用程序。我有一个限制类,我想限制用户在一分钟内向同一用户发送超过5个邀请。我发送一个带有URL的用户ID

我应该访问pk以将其用于缓存操作。如何从throttle类访问pk

例如:api/users/3299143165471965406/重新发送邀请电子邮件/

主键将为:3299143165471965406

视图.py

    @decorators.action(methods=['post'], detail=True, serializer_class=None,
                       permission_classes=[core_permissions.IsCompanyAdmin],
                       url_path='resend-invitation-email', throttle_classes=[throttles.ResendInvitationThrottle])
    def resend_invitation_email(self, request, pk=None):
        user = get_object_or_404(User, pk=pk)
        if user.invitation_status == User.INVITATION_STATUS_ACCEPTED or user.invitation_status is None:
            raise ValidationError("This user is already registered.")
        else:
            invitations_tasks.send_invitation_email.delay(pk)
            return response.Response(status=200)
油门:

class ResendInvitationThrottle(SimpleRateThrottle):
    scope = 'invitation'

    def get_cache_key(self, request, view):
        invited_user_id = 1  # Here I should use PK
        return self.cache_format % {
            'scope': self.scope,
            'ident': invited_user_id
        }
编辑:

class ResendInvitationThrottle(SimpleRateThrottle):
    scope = 'invitation'

    def get_cache_key(self, request, view):
        invited_user_id = 1  # Here I should use PK
        return self.cache_format % {
            'scope': self.scope,
            'ident': invited_user_id
        }
我通过使用:
invested\u user\u id=view.kwargs['pk']


谢谢你的回复
self.request.kwargs['pk']
引发异常:“request”对象没有属性“kwargs”。很抱歉,
self.request.kwargs
完全错误,我写这篇文章时已经是深夜了。很高兴看到你明白了。您可以添加自己的答案,然后如果愿意,将其标记为已接受。谢谢您的回复
self.request.kwargs['pk']
引发异常:“request”对象没有属性“kwargs”。很抱歉,
self.request.kwargs
完全错误,我写这篇文章时已经是深夜了。很高兴看到你明白了。您可以添加自己的答案,然后如果愿意,将其标记为已接受。