diff options
Diffstat (limited to 'django/template/loaders/filesystem.py')
| -rw-r--r-- | django/template/loaders/filesystem.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/django/template/loaders/filesystem.py b/django/template/loaders/filesystem.py new file mode 100644 index 0000000000..0c94021fb8 --- /dev/null +++ b/django/template/loaders/filesystem.py @@ -0,0 +1,25 @@ +# Wrapper for loading templates from the filesystem. + +from django.conf import settings +from django.template import TemplateDoesNotExist +import os + +def get_template_sources(template_name, template_dirs=None): + if not template_dirs: + template_dirs = settings.TEMPLATE_DIRS + for template_dir in template_dirs: + yield os.path.join(template_dir, template_name) + +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(), filepath) + except IOError: + tried.append(filepath) + if template_dirs: + 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 |
