You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
899 B
25 lines
899 B
# Wrapper for loading templates from eggs via pkg_resources.resource_string. |
|
|
|
try: |
|
from pkg_resources import resource_string |
|
except ImportError: |
|
resource_string = None |
|
|
|
from django.template import TemplateDoesNotExist |
|
from django.conf import settings |
|
|
|
def load_template_source(template_name, template_dirs=None): |
|
""" |
|
Loads templates from Python eggs via pkg_resource.resource_string. |
|
|
|
For every installed app, it tries to get the resource (app, template_name). |
|
""" |
|
if resource_string is not None: |
|
pkg_name = 'templates/' + template_name |
|
for app in settings.INSTALLED_APPS: |
|
try: |
|
return (resource_string(app, pkg_name).decode(settings.FILE_CHARSET), 'egg:%s:%s' % (app, pkg_name)) |
|
except: |
|
pass |
|
raise TemplateDoesNotExist, template_name |
|
load_template_source.is_usable = resource_string is not None
|
|
|