mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Refs #13573 -- Modified the key technique added in r13295 to be more robust against potential key collisions while keeping key names human-readable. Thanks to Alex for being finicky.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@13299 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -3,10 +3,11 @@ Wrapper class that takes a list of template loaders as an argument and attempts | ||||
| to load templates from them in order, caching the result. | ||||
| """ | ||||
|  | ||||
| from django.core.exceptions import ImproperlyConfigured | ||||
| from django.template import TemplateDoesNotExist | ||||
| from django.template.loader import BaseLoader, get_template_from_string, find_template_loader, make_origin | ||||
| from django.utils.hashcompat import sha_constructor | ||||
| from django.utils.importlib import import_module | ||||
| from django.core.exceptions import ImproperlyConfigured | ||||
|  | ||||
| class Loader(BaseLoader): | ||||
|     is_usable = True | ||||
| @@ -34,8 +35,10 @@ class Loader(BaseLoader): | ||||
|         raise TemplateDoesNotExist(name) | ||||
|  | ||||
|     def load_template(self, template_name, template_dirs=None): | ||||
|         # Use hash(..) to avoid saving potentially large template_dirs values | ||||
|         key = hash((template_name, template_dirs)) | ||||
|         key = template_name | ||||
|         if template_dirs: | ||||
|             # If template directories were specified, use a hash to differentiate | ||||
|             key = '-'.join([template_name, sha_constructor('|'.join(template_dirs)).hexdigest()]) | ||||
|  | ||||
|         if key not in self.template_cache: | ||||
|             template, origin = self.find_template(template_name, template_dirs) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user