mirror of
https://github.com/jazzband/django-dbtemplates.git
synced 2026-03-16 22:20:28 +00:00
proper solution
This commit is contained in:
parent
15c4a5930b
commit
685c77e718
1 changed files with 44 additions and 44 deletions
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue