from django import template
from django.template.loaders.app_directories import load_template_source
register = template.Library()
def do_include_raw(parser, token):
"""
Performs a template include without parsing the context, just dumps the template in.
"""
bits = token.split_contents()
if len(bits) != 2:
raise TemplateSyntaxError, "%r tag takes one argument: the name of the template to be included" % bits[0]
template_name = bits[1]
if template_name[0] in ('"', "'") and template_name[-1] == template_name[0]:
template_name = template_name[1:-1]
source, path = load_template_source(template_name)
return template.TextNode(source)
register.tag("include_raw", do_include_raw)
Comments
It would be cool if the load_template_source was imported also from django.template.loaders.filesystem. Probably the line 18 could be changed to something like this:
Besides that, a great work!!!
#
This no longer works as load_template_source has been deprecated. Instead, use the Loader class:
Replace app_directories with filesystem as required according to https://docs.djangoproject.com/en/dev/ref/templates/api/#loader-types - or use a combination approach as joaodubas suggests.
#