diff options
Diffstat (limited to 'webapp/django/template/loaders/filesystem.py')
-rw-r--r-- | webapp/django/template/loaders/filesystem.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/webapp/django/template/loaders/filesystem.py b/webapp/django/template/loaders/filesystem.py new file mode 100644 index 0000000000..9997eb9a54 --- /dev/null +++ b/webapp/django/template/loaders/filesystem.py @@ -0,0 +1,31 @@ +""" +Wrapper for loading templates from the filesystem. +""" + +from django.conf import settings +from django.template import TemplateDoesNotExist +from django.utils._os import safe_join + +def get_template_sources(template_name, template_dirs=None): + if not template_dirs: + template_dirs = settings.TEMPLATE_DIRS + for template_dir in template_dirs: + try: + yield safe_join(template_dir, template_name) + except ValueError: + # The joined path was located outside of template_dir. + pass + +def load_template_source(template_name, template_dirs=None): + tried = [] + for filepath in get_template_sources(template_name, template_dirs): + try: + return (open(filepath).read().decode(settings.FILE_CHARSET), filepath) + except IOError: + tried.append(filepath) + if tried: + error_msg = "Tried %s" % tried + else: + error_msg = "Your TEMPLATE_DIRS setting is empty. Change it to point to at least one template directory." + raise TemplateDoesNotExist, error_msg +load_template_source.is_usable = True |