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