summaryrefslogtreecommitdiff
path: root/django/core
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-08-15 16:56:33 +0200
committerClaude Paroz <claude@2xlibre.net>2012-08-15 16:57:17 +0200
commit4e17f4589accf5be0954eebc41d36ef96125d47c (patch)
tree3b851abb401b4e4b9d840ac82e2447711a4ab79a /django/core
parent607665a396e52a4e788543496e3be7b47972bf54 (diff)
Fixed #18770 -- memcached cache backend expects byte strings as keys
Thanks thecore for the report.
Diffstat (limited to 'django/core')
-rw-r--r--django/core/cache/backends/memcached.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py
index e7724f1b91..75ce26d20e 100644
--- a/django/core/cache/backends/memcached.py
+++ b/django/core/cache/backends/memcached.py
@@ -6,6 +6,7 @@ from threading import local
from django.core.cache.backends.base import BaseCache, InvalidCacheBackendError
from django.utils import six
+from django.utils.encoding import smart_str
class BaseMemcachedCache(BaseCache):
def __init__(self, server, params, library, value_not_found_exception):
@@ -50,6 +51,10 @@ class BaseMemcachedCache(BaseCache):
timeout += int(time.time())
return int(timeout)
+ def make_key(self, key, version=None):
+ # Python 2 memcache requires the key to be a byte string.
+ return smart_str(super(BaseMemcachedCache, self).make_key(key, version))
+
def add(self, key, value, timeout=0, version=None):
key = self.make_key(key, version=version)
return self._cache.add(key, value, self._get_memcache_timeout(timeout))