app/django/template/loaders/eggs.py
changeset 54 03e267d67478
equal deleted inserted replaced
53:57b4279d8c4e 54:03e267d67478
       
     1 # Wrapper for loading templates from eggs via pkg_resources.resource_string.
       
     2 
       
     3 try:
       
     4     from pkg_resources import resource_string
       
     5 except ImportError:
       
     6     resource_string = None
       
     7 
       
     8 from django.template import TemplateDoesNotExist
       
     9 from django.conf import settings
       
    10 
       
    11 def load_template_source(template_name, template_dirs=None):
       
    12     """
       
    13     Loads templates from Python eggs via pkg_resource.resource_string.
       
    14 
       
    15     For every installed app, it tries to get the resource (app, template_name).
       
    16     """
       
    17     if resource_string is not None:
       
    18         pkg_name = 'templates/' + template_name
       
    19         for app in settings.INSTALLED_APPS:
       
    20             try:
       
    21                 return (resource_string(app, pkg_name).decode(settings.FILE_CHARSET), 'egg:%s:%s' % (app, pkg_name))
       
    22             except:
       
    23                 pass
       
    24     raise TemplateDoesNotExist, template_name
       
    25 load_template_source.is_usable = resource_string is not None