怎么做?使用不同的范围创建两个不同的视图?
谢谢.
解决方法 解决方案1:这有点棘手,我没有测试过.
覆盖APIVIEw中的get_throttles方法.
class PhotoVIEw(APIVIEw): throttle_scope = 'default_scope' def get_throttles(self): if self.request.method.lower() == 'get': self.throttle_scope = 'get_scope' elif self.request.method.lower() == 'post': self.throttle_scope = 'post_scope' return super(PhotoVIEw,self).get_throttles()
解决方案2
您应该为不同的scope_attr定义自己的ScopedrateThrottle类.
class FooScopedrateThrottle(ScopedrateThrottle): scope_attr = 'foo_throttle_scope'class barScopedrateThrottle(ScopedrateThrottle): scope_attr = 'bar_throttle_scope'class PhotoVIEw(APIVIEw): foo_throttle_scope = 'scope_get' bar_throttle_scope = 'scope_post' def get_throttles(self): ret = [] if self.request.method.lower() == 'get': return [FooScopedrateThrottle,] elif self.request.method.lower() == 'post': return [barScopedrateThrottle,] else: return super(PhotoVIEw,self).get_throttles()
仅供参考.相关源代码:get_throttles和ScopedRateThrottle
总结以上是内存溢出为你收集整理的django-rest-framework – Django REST POST和GET不同的节流范围全部内容,希望文章能够帮你解决django-rest-framework – Django REST POST和GET不同的节流范围所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)