Как применить дросселирование только для создания действия в наборах представлений 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]