app/django/template/loaders/app_directories.py
changeset 323 ff1a9aa48cfd
parent 54 03e267d67478
equal deleted inserted replaced
322:6641e941ef1e 323:ff1a9aa48cfd
    31 
    31 
    32 # It won't change, so convert it to a tuple to save memory.
    32 # It won't change, so convert it to a tuple to save memory.
    33 app_template_dirs = tuple(app_template_dirs)
    33 app_template_dirs = tuple(app_template_dirs)
    34 
    34 
    35 def get_template_sources(template_name, template_dirs=None):
    35 def get_template_sources(template_name, template_dirs=None):
       
    36     """
       
    37     Returns the absolute paths to "template_name", when appended to each
       
    38     directory in "template_dirs". Any paths that don't lie inside one of the
       
    39     template dirs are excluded from the result set, for security reasons.
       
    40     """
    36     if not template_dirs:
    41     if not template_dirs:
    37         template_dirs = app_template_dirs
    42         template_dirs = app_template_dirs
    38     for template_dir in template_dirs:
    43     for template_dir in template_dirs:
    39         try:
    44         try:
    40             yield safe_join(template_dir, template_name)
    45             yield safe_join(template_dir, template_name)
       
    46         except UnicodeDecodeError:
       
    47             # The template dir name was a bytestring that wasn't valid UTF-8.
       
    48             raise
    41         except ValueError:
    49         except ValueError:
    42             # The joined path was located outside of template_dir.
    50             # The joined path was located outside of template_dir.
    43             pass
    51             pass
    44 
    52 
    45 def load_template_source(template_name, template_dirs=None):
    53 def load_template_source(template_name, template_dirs=None):