From 22746d32a50792247330ea026e0d0ac2a0c2f933 Mon Sep 17 00:00:00 2001 From: Adrian Holovaty <adrian@holovaty.com> Date: Thu, 24 Nov 2005 21:14:42 +0000 Subject: [PATCH] Added a get_template_sources generator function to filesystem and app_directories template loaders, so template-loader debugger can hook into it. Refs #892. git-svn-id: http://code.djangoproject.com/svn/django/trunk@1399 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/template/loader.py | 2 +- django/core/template/loaders/app_directories.py | 7 +++++-- django/core/template/loaders/filesystem.py | 9 ++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/django/core/template/loader.py b/django/core/template/loader.py index 10989424db..6d747d560d 100644 --- a/django/core/template/loader.py +++ b/django/core/template/loader.py @@ -59,7 +59,7 @@ def make_origin(display_name, loader, name, dirs): def find_template_source(name, dirs=None): for loader in template_source_loaders: try: - source, display_name = loader(name, dirs) + source, display_name = loader(name, dirs) return (source, make_origin(display_name, loader, name, dirs)) except TemplateDoesNotExist: pass diff --git a/django/core/template/loaders/app_directories.py b/django/core/template/loaders/app_directories.py index d7c02c68ea..390e47852e 100644 --- a/django/core/template/loaders/app_directories.py +++ b/django/core/template/loaders/app_directories.py @@ -27,9 +27,12 @@ for app in INSTALLED_APPS: # It won't change, so convert it to a tuple to save memory. app_template_dirs = tuple(app_template_dirs) -def load_template_source(template_name, template_dirs=None): +def get_template_sources(template_name, template_dirs=None): for template_dir in app_template_dirs: - filepath = os.path.join(template_dir, template_name) + TEMPLATE_FILE_EXTENSION + yield os.path.join(template_dir, template_name) + TEMPLATE_FILE_EXTENSION + +def load_template_source(template_name, template_dirs=None): + for filepath in get_template_sources(template_name, template_dirs): try: return (open(filepath).read(), filepath) except IOError: diff --git a/django/core/template/loaders/filesystem.py b/django/core/template/loaders/filesystem.py index 9a93481705..23ce6cd9e4 100644 --- a/django/core/template/loaders/filesystem.py +++ b/django/core/template/loaders/filesystem.py @@ -4,12 +4,15 @@ from django.conf.settings import TEMPLATE_DIRS, TEMPLATE_FILE_EXTENSION from django.core.template import TemplateDoesNotExist import os -def load_template_source(template_name, template_dirs=None): +def get_template_sources(template_name, template_dirs=None): if not template_dirs: template_dirs = TEMPLATE_DIRS - tried = [] for template_dir in template_dirs: - filepath = os.path.join(template_dir, template_name) + TEMPLATE_FILE_EXTENSION + yield os.path.join(template_dir, template_name) + TEMPLATE_FILE_EXTENSION + +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: