Как применить дросселирование только для создания действия в наборах представлений DRF?

У меня есть набор представлений, и я хочу применить дросселирование только к create действию этого набора представлений и не хочу, чтобы оно применялось к update, destroy, retrieve и т.д...

class UserViewSet(viewsets.ModelViewSet):
    # should only be applied to the create action
    throttle_classes = [SomeThrottle] 
    ...

Как описано в Introspecting ViewSet actions [DRF docs] вы можете исследовать атрибут action для установки throttle_classes на основе текущего действия, переопределив метод get_throttles:

class UserViewSet(viewsets.ModelViewSet):
    def get_throttles(self):
        if self.action == 'create':
            throttle_classes = [SomeThrottle]
        else:
            throttle_classes = []  # No throttle for other actions
        return [throttle() for throttle in throttle_classes]
Вернуться на верх