summaryrefslogtreecommitdiff
path: root/django/template/loaders/filesystem.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/template/loaders/filesystem.py')
-rw-r--r--django/template/loaders/filesystem.py25
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