aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/topics/2.4-accouncement.md11
-rw-r--r--docs/topics/release-notes.md1
-rw-r--r--rest_framework/throttling.py2
3 files changed, 13 insertions, 1 deletions
diff --git a/docs/topics/2.4-accouncement.md b/docs/topics/2.4-accouncement.md
index 50484287..e3f9d57a 100644
--- a/docs/topics/2.4-accouncement.md
+++ b/docs/topics/2.4-accouncement.md
@@ -97,6 +97,17 @@ Here's an example of using the new decorators. Firstly we have a detail-type rou
For more details, see the [viewsets documentation](../api-guide/viewsets.md).
+## Throttle behavior
+
+There's one bugfix in 2.4 that's worth calling out, as it will *invalidate existing throttle caches* when you upgrade.
+
+We've now fixed a typo on the `cache_format` attribute. Previously this was named `"throtte_%(scope)s_%(ident)s"`, it is now `"throttle_%(scope)s_%(ident)s"`.
+
+If you're concerned about the invalidation you have two options.
+
+* Manually pre-populate your cache with the fixed version.
+* Set the `cache_format` attribute on your throttle class in order to retain the previous incorrect spelling.
+
## Other features
There are also a number of other features and bugfixes as [listed in the release notes][2-4-release-notes]. In particular these include:
diff --git a/docs/topics/release-notes.md b/docs/topics/release-notes.md
index a31be28f..0a74a27d 100644
--- a/docs/topics/release-notes.md
+++ b/docs/topics/release-notes.md
@@ -62,6 +62,7 @@ You can determine your currently installed version using `pip freeze`:
* Bugfix: Copy `filter_backends` list before returning it, in order to prevent view code from mutating the class attribute itself.
* Bugfix: Set the `.action` attribute on viewsets when introspected by `OPTIONS` for testing permissions on the view.
* Bugfix: Ensure `ValueError` raised during deserialization results in a error list rather than a single error. This is now consistent with other validation errors.
+* Bugfix: Fix `cache_format` typo on throttle classes, was `"throtte_%(scope)s_%(ident)s"`. Note that this will invalidate existing throttle caches.
---
diff --git a/rest_framework/throttling.py b/rest_framework/throttling.py
index 7e9f9d71..361dbddf 100644
--- a/rest_framework/throttling.py
+++ b/rest_framework/throttling.py
@@ -60,7 +60,7 @@ class SimpleRateThrottle(BaseThrottle):
cache = default_cache
timer = time.time
- cache_format = 'throtte_%(scope)s_%(ident)s'
+ cache_format = 'throttle_%(scope)s_%(ident)s'
scope = None
THROTTLE_RATES = api_settings.DEFAULT_THROTTLE_RATES