diff options
| author | Christian Barcenas <christian@cbarcenas.com> | 2018-07-06 11:03:58 -0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-07-09 10:24:41 -0400 |
| commit | c9c6c166506bec59c57d4e3389e7ccd552e47ffc (patch) | |
| tree | 468b7c9840f70cf359a6b9c9475217e0baef64cd /django | |
| parent | 38e904e26576abffed3c257a1a741e1641c6f2de (diff) | |
Fixed #20584 -- Fixed memcached's get_many() with single-use iterators.
Thanks Guyon Morée for the report.
Diffstat (limited to 'django')
| -rw-r--r-- | django/core/cache/backends/memcached.py | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py index 1c8066ba03..bb27cb53bb 100644 --- a/django/core/cache/backends/memcached.py +++ b/django/core/cache/backends/memcached.py @@ -84,12 +84,9 @@ class BaseMemcachedCache(BaseCache): self._cache.delete(key) def get_many(self, keys, version=None): - new_keys = [self.make_key(x, version=version) for x in keys] - ret = self._cache.get_multi(new_keys) - if ret: - m = dict(zip(new_keys, keys)) - return {m[k]: v for k, v in ret.items()} - return ret + key_map = {self.make_key(key, version=version): key for key in keys} + ret = self._cache.get_multi(key_map.keys()) + return {key_map[k]: v for k, v in ret.items()} def close(self, **kwargs): # Many clients don't clean up connections properly. |
