From 685c77e718b0ca05c55a67c7a70e8492b73efe73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Kut=C3=BD?= <6du1ro.n@gmail.com> Date: Tue, 28 Apr 2015 11:16:06 +0200 Subject: [PATCH] proper solution --- dbtemplates/utils/template.py | 88 +++++++++++++++++------------------ 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/dbtemplates/utils/template.py b/dbtemplates/utils/template.py index 3132c84..526fcb7 100644 --- a/dbtemplates/utils/template.py +++ b/dbtemplates/utils/template.py @@ -5,55 +5,55 @@ from django.utils.importlib import import_module def get_loaders(): - from django.template.loader import template_source_loaders - if template_source_loaders is None: - try: - from django.template.loader import find_template as finder - except ImportError: - from django.template.loader import find_template_source as finder # noqa - try: - source, name = finder('test') - except TemplateDoesNotExist: - pass + if VERSION[:2] < (1, 8): from django.template.loader import template_source_loaders - return template_source_loaders or [] + if template_source_loaders is None: + try: + from django.template.loader import find_template as finder + except ImportError: + from django.template.loader import find_template_source as finder # noqa + try: + source, name = finder('test') + except TemplateDoesNotExist: + pass + from django.template.loader import template_source_loaders + return template_source_loaders or [] + else: + from django.template.loader import _engine_list + loaders = [] + for engine in _engine_list(): + loaders.extend(engine.engine.template_loaders) + return loaders def get_template_source(name): source = None - if VERSION[:2] < (1, 8): - for loader in get_loaders(): - if loader.__module__.startswith('dbtemplates.'): - # Don't give a damn about dbtemplates' own loader. - continue - module = import_module(loader.__module__) - load_template_source = getattr( - module, 'load_template_source', None) - if load_template_source is None: - load_template_source = loader.load_template_source - try: - source, origin = load_template_source(name) - if source: - return source - except NotImplementedError: - pass - except TemplateDoesNotExist: - pass - if source is None and VERSION[:2] < (1, 2): - # Django supported template source extraction still :/ - try: - from django.template.loader import find_template_source - template, origin = find_template_source(name, None) - if not hasattr(template, 'render'): - return template - except (ImportError, TemplateDoesNotExist): - pass - else: - from django.template.loader import get_template - template = get_template(name) - with open(str(template.origin)) as source_file: - source = source_file.read() - return source + for loader in get_loaders(): + if loader.__module__.startswith('dbtemplates.'): + # Don't give a damn about dbtemplates' own loader. + continue + module = import_module(loader.__module__) + load_template_source = getattr( + module, 'load_template_source', None) + if load_template_source is None: + load_template_source = loader.load_template_source + try: + source, origin = load_template_source(name) + if source: + return source + except NotImplementedError: + pass + except TemplateDoesNotExist: + pass + if source is None and VERSION[:2] < (1, 2): + # Django supported template source extraction still :/ + try: + from django.template.loader import find_template_source + template, origin = find_template_source(name, None) + if not hasattr(template, 'render'): + return template + except (ImportError, TemplateDoesNotExist): + pass return None