From 6a67dce9ccbb2533cbb3fb8d16affdf17dd1f8e7 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Tue, 10 May 2016 09:57:03 -0400 Subject: [1.9.x] Fixed #26603 -- Forced lazy template names to text when computing cache key. Refs #26536. Thanks Sylvain Fankhauser for the very detailed report. Backport of 207c5b4acd410dd39bac31457dae26a0d15b8b93 from master --- django/template/loaders/cached.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'django') diff --git a/django/template/loaders/cached.py b/django/template/loaders/cached.py index 1a3851d280..104a3356a7 100644 --- a/django/template/loaders/cached.py +++ b/django/template/loaders/cached.py @@ -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() -- cgit v1.3