Opened 10 years ago

Last modified 6 years ago

#6691 closed

Make it possible for template loaders to optionally return compiled Template object — at Initial Version

Reported by: redvasily Owned by: nobody
Component: Template system Version: master
Severity: Normal Keywords:
Cc: redvasily@…, jefferya@… Triage Stage: Design decision needed
Has patch: yes Needs documentation: yes
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Django now uses two stage template loading process:

This patch follows our (very) small discussion on mailing list: http://groups.google.ru/group/django-developers/browse_thread/thread/5e54ab5cac98da90?hl=en

  1. First find_template_source() which uses settings.TEMPLATE_LOADERS

to actually load template

  1. get_template_from_string() which is essentially a factory function

for Template objects

I modified django.template.loader.find_template_source() function and renamed it to find_template() to check if return value of template loader is a tuple - if it's a tuple than standard it proceeds with standard template loading process:

origin = make_origin(display_name, loader, name, dirs)
template = Template(template, origin, name)

But if it fails to unpack return value of template loader it assumes that template loader returned compiled template object and returns it.

This change is backwards compatible and opens a lot of new possibilities for template system.

Change History (1)

Changed 10 years ago by redvasily

Attachment: templateloader.diff added

Diff implementing this ticket

Note: See TracTickets for help on using tickets.
Back to Top