django - 如何应用节流只是为了在 DRF View 集中创建 Action ?

标签 django django-rest-framework

我有一个 View 集,我只想将限制应用于 create该 View 集的操作,我不希望它应用于 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]

关于django - 如何应用节流只是为了在 DRF View 集中创建 Action ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69068513/

相关文章:

Django 运行服务器永久

python - 在 Django Rest Framework 中发布外键 ID

python - 轻量级 Django : settings. ALLOWED_HOSTS 设置为环境变量

django - initial_data.json 在测试前未加载

django - has_object_permission 未调用

python - 如何制作一个接受 POST 数据的 Django-Rest-Framework API?

python - 使用自定义模型和 mongodb 进行 Django 用户身份验证

Python Django RestFramework 路由触发器

django - 将两个模型混合到 DRF 中的同一端点

django - 什么时候应该在 Django 中使用 db_index=True?