deprecated in favour of #7806.

django.template.r7857.diff mailto: python -c "print '%s@%s' % ('research', '')"
Includes the following patches: 7295.2.diff from #7295, and 5756.2.patch from #5756, plus some minor changes that should fix #5862 (filters for extends) as well. Further, the simple_tag enhancement from #1105 is included, modified in the spirit of #5756 to accept filters (this also affects inclusion_tag).
Adds a template_cache to Context, accessible via Context.get_template() and Context.select_template(). This is used in IncludeNode, ExtendsNode, and inclusion_tag.
{% include %} only loads the template if it's rendered. ConstantIncludeNode is gone. This fixes #3544. Backwards-compatibility: If you rely on parse-time side-effects in an included template (eg. {% load %}) you might get bitten.
Adds a loader kwarg to Context to force use of a specific templateloader (something with a get_template() method). This fixes #2949 (and possibly #6834).
class PrefixLoader:
     def __init__(self, prefix_list):
         self.prefix_list = prefix_list
     def get_template(name):
         from django.template.loader import select_template
         return select_template(['%s/%s' % (prefix, name) for prefix in self.prefix_list])

tpl.render(Context({}, loader=PrefixLoader(['a', 'b', 'c'])))
The above emulates select_template() for include and extends nodes.
Extends with-tag syntax to allow

{% with foo as x and bar as y and ... %} and {% with foo as x, bar as y, ... %}

Extends include-tag syntax to allow

{% include "template" with foo as x and bar as y %} and {% include "template" with foo as x, bar as y %}

This is equivalent to {% with ... %}{% include ... %}{% endwith %}.

Adds an optional separator_chars argument to django.utils.text.smart_split() and Token.split_contents() that enables extra delimiters
>>> map(str, smart_split('a, b,c ,d, e ,f', separator_chars=','))
['a', ',', 'b', ',', 'c', ',', 'd', ',', 'e', ',', 'f']
>>> map(str, smart_split('a=1, b=2 , c = 3', separator_chars=',='))
['a', '=', '1', ',', 'b', '=', '2', ',', 'c', '=', '3']
Adds the django.template.bits module, which provides parsing utilities:

parse_args_and_kwargs(parser, bits, validate_kwarg_names=True, separator=',')

resolve_args_and_kwargs(args, kwargs, context)

parse_context_map(parser, bits, separators=('and', ','), operator='as')

render_with_context_map(renderable, context_map, context)