mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #4845 -- Fixed some problems with Unicode usage and caching. Thanks,
Jeremy Dunck. git-svn-id: http://code.djangoproject.com/svn/django/trunk@5718 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		
							
								
								
									
										5
									
								
								django/core/cache/backends/filebased.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								django/core/cache/backends/filebased.py
									
									
									
									
										vendored
									
									
								
							| @@ -1,7 +1,8 @@ | ||||
| "File-based cache backend" | ||||
|  | ||||
| from django.core.cache.backends.simple import CacheClass as SimpleCacheClass | ||||
| import os, time, urllib | ||||
| from django.utils.http import urlquote_plus | ||||
| import os, time | ||||
| try: | ||||
|     import cPickle as pickle | ||||
| except ImportError: | ||||
| @@ -77,4 +78,4 @@ class CacheClass(SimpleCacheClass): | ||||
|             raise EnvironmentError, "Cache directory '%s' does not exist and could not be created'" % self._dir | ||||
|  | ||||
|     def _key_to_file(self, key): | ||||
|         return os.path.join(self._dir, urllib.quote_plus(key)) | ||||
|         return os.path.join(self._dir, urlquote_plus(key)) | ||||
|   | ||||
							
								
								
									
										16
									
								
								django/core/cache/backends/memcached.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								django/core/cache/backends/memcached.py
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,7 @@ | ||||
| "Memcached cache backend" | ||||
|  | ||||
| from django.core.cache.backends.base import BaseCache, InvalidCacheBackendError | ||||
| from django.utils.encoding import smart_unicode, smart_str | ||||
|  | ||||
| try: | ||||
|     import cmemcache as memcache | ||||
| @@ -16,17 +17,22 @@ class CacheClass(BaseCache): | ||||
|         self._cache = memcache.Client(server.split(';')) | ||||
|  | ||||
|     def get(self, key, default=None): | ||||
|         val = self._cache.get(key) | ||||
|         val = self._cache.get(smart_str(key)) | ||||
|         if val is None: | ||||
|             return default | ||||
|         else: | ||||
|             return val | ||||
|             if isinstance(val, basestring): | ||||
|                 return smart_unicode(val) | ||||
|             else: | ||||
|                 return val | ||||
|  | ||||
|     def set(self, key, value, timeout=0): | ||||
|         self._cache.set(key, value, timeout or self.default_timeout) | ||||
|         if isinstance(value, unicode): | ||||
|             value = value.encode('utf-8') | ||||
|         self._cache.set(smart_str(key), value, timeout or self.default_timeout) | ||||
|  | ||||
|     def delete(self, key): | ||||
|         self._cache.delete(key) | ||||
|         self._cache.delete(smart_str(key)) | ||||
|  | ||||
|     def get_many(self, keys): | ||||
|         return self._cache.get_multi(keys) | ||||
|         return self._cache.get_multi(map(smart_str,keys)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user