From 2ae58b20ec72ce501c91dff8a8fcc8fe40cf5019 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Tue, 14 Aug 2012 12:09:45 +0200 Subject: [PATCH] [py3] Fixed egg template loader. --- django/template/loaders/eggs.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/django/template/loaders/eggs.py b/django/template/loaders/eggs.py index 42f87a459e..7e35b34ec4 100644 --- a/django/template/loaders/eggs.py +++ b/django/template/loaders/eggs.py @@ -1,13 +1,15 @@ # Wrapper for loading templates from eggs via pkg_resources.resource_string. +from __future__ import unicode_literals try: from pkg_resources import resource_string except ImportError: resource_string = None +from django.conf import settings from django.template.base import TemplateDoesNotExist from django.template.loader import BaseLoader -from django.conf import settings +from django.utils import six class Loader(BaseLoader): is_usable = resource_string is not None @@ -22,9 +24,12 @@ class Loader(BaseLoader): pkg_name = 'templates/' + template_name for app in settings.INSTALLED_APPS: try: - return (resource_string(app, pkg_name).decode(settings.FILE_CHARSET), 'egg:%s:%s' % (app, pkg_name)) - except: - pass + resource = resource_string(app, pkg_name) + except Exception: + continue + if not six.PY3: + resource = resource.decode(settings.FILE_CHARSET) + return (resource, 'egg:%s:%s' % (app, pkg_name)) raise TemplateDoesNotExist(template_name) _loader = Loader()