1
0
mirror of https://github.com/django/django.git synced 2025-10-24 14:16:09 +00:00

Fixed #26603 -- Forced lazy template names to text when computing cache key.

Refs #26536.

Thanks Sylvain Fankhauser for the very detailed report.
This commit is contained in:
Simon Charette
2016-05-10 09:57:03 -04:00
parent bf3057d10b
commit 207c5b4acd
3 changed files with 13 additions and 2 deletions

View File

@@ -9,7 +9,7 @@ import warnings
from django.template import Origin, Template, TemplateDoesNotExist
from django.template.backends.django import copy_exception
from django.utils.deprecation import RemovedInDjango20Warning
from django.utils.encoding import force_bytes
from django.utils.encoding import force_bytes, force_text
from django.utils.inspect import func_supports_parameter
from .base import Loader as BaseLoader
@@ -100,7 +100,7 @@ class Loader(BaseLoader):
if template_dirs:
dirs_prefix = self.generate_hash(template_dirs)
return '-'.join(filter(bool, [template_name, skip_prefix, dirs_prefix]))
return '-'.join(filter(bool, [force_text(template_name), skip_prefix, dirs_prefix]))
def generate_hash(self, values):
return hashlib.sha1(force_bytes('|'.join(values))).hexdigest()