equal
deleted
inserted
replaced
|
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 |