from rest_framework.throttling import SimpleRateThrottle class LoginRateThrottle(SimpleRateThrottle): scope = "login" def get_cache_key(self, request, view): return self.get_ident(request) class DeviceListRateThrottle(SimpleRateThrottle): scope = "devicelist" def get_cache_key(self, request, view): user = request.user uid = user["uid"] return uid class DeviceDetailRateThrottle(SimpleRateThrottle): scope = "devicedetail" def get_cache_key(self, request, view): user = request.user uid = user["uid"] deviceId = request.data.get("device_id") return uid + deviceId