diff options
| author | Aaron Elliot Ross <aaronelliotross@gmail.com> | 2015-11-08 10:06:07 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-11-12 19:14:23 -0500 |
| commit | 19a5f6da329d58653bcda85f84efd5d5eaf68f84 (patch) | |
| tree | 52f6955cff728d3050710f70ba0a735e99704643 /django | |
| parent | a8f05f405f8b78e13d7c4c9ffd73d6182b6fc4d5 (diff) | |
Fixed #25469 -- Added autoescape option to DjangoTemplates backend.
Thanks Aymeric for the initial patch and Carl for review.
Diffstat (limited to 'django')
| -rw-r--r-- | django/template/backends/django.py | 3 | ||||
| -rw-r--r-- | django/template/context.py | 10 | ||||
| -rw-r--r-- | django/template/engine.py | 3 |
3 files changed, 9 insertions, 7 deletions
diff --git a/django/template/backends/django.py b/django/template/backends/django.py index af58f60b2a..cc795aae1c 100644 --- a/django/template/backends/django.py +++ b/django/template/backends/django.py @@ -23,6 +23,7 @@ class DjangoTemplates(BaseEngine): def __init__(self, params): params = params.copy() options = params.pop('OPTIONS').copy() + options.setdefault('autoescape', True) options.setdefault('debug', settings.DEBUG) options.setdefault('file_charset', settings.FILE_CHARSET) libraries = options.get('libraries', {}) @@ -60,7 +61,7 @@ class Template(object): return self.template.origin def render(self, context=None, request=None): - context = make_context(context, request) + context = make_context(context, request, autoescape=self.backend.engine.autoescape) try: return self.template.render(context) except TemplateDoesNotExist as exc: diff --git a/django/template/context.py b/django/template/context.py index 2643e927f4..04d0e2f5f4 100644 --- a/django/template/context.py +++ b/django/template/context.py @@ -201,9 +201,9 @@ class RequestContext(Context): Additional processors can be specified as a list of callables using the "processors" keyword argument. """ - def __init__(self, request, dict_=None, processors=None, use_l10n=None, use_tz=None): + def __init__(self, request, dict_=None, processors=None, use_l10n=None, use_tz=None, autoescape=True): super(RequestContext, self).__init__( - dict_, use_l10n=use_l10n, use_tz=use_tz) + dict_, use_l10n=use_l10n, use_tz=use_tz, autoescape=autoescape) self.request = request self._processors = () if processors is None else tuple(processors) self._processors_index = len(self.dicts) @@ -245,17 +245,17 @@ class RequestContext(Context): return new_context -def make_context(context, request=None): +def make_context(context, request=None, **kwargs): """ Create a suitable Context from a plain dict and optionally an HttpRequest. """ if request is None: - context = Context(context) + context = Context(context, **kwargs) else: # The following pattern is required to ensure values from # context override those from template context processors. original_context = context - context = RequestContext(request) + context = RequestContext(request, **kwargs) if original_context: context.push(original_context) return context diff --git a/django/template/engine.py b/django/template/engine.py index d439f49679..b49ed09088 100644 --- a/django/template/engine.py +++ b/django/template/engine.py @@ -18,7 +18,7 @@ class Engine(object): def __init__(self, dirs=None, app_dirs=False, context_processors=None, debug=False, loaders=None, string_if_invalid='', - file_charset='utf-8', libraries=None, builtins=None): + file_charset='utf-8', libraries=None, builtins=None, autoescape=True): if dirs is None: dirs = [] if context_processors is None: @@ -38,6 +38,7 @@ class Engine(object): self.dirs = dirs self.app_dirs = app_dirs + self.autoescape = autoescape self.context_processors = context_processors self.debug = debug self.loaders = loaders |
