1
0
mirror of https://github.com/django/django.git synced 2025-10-28 08:06:09 +00:00

Added a request argument to render_to_string.

This is for consistency with Template.render.

It adds a little bit of knowledge about HTTP requests in
django.template.loader but I think consistency trumps purity.
This commit is contained in:
Aymeric Augustin
2015-01-03 19:06:36 +01:00
parent 118592663d
commit eaa1a22341
4 changed files with 23 additions and 4 deletions

View File

@@ -80,7 +80,7 @@ def render_to_string(template_name, context=None,
context_instance=_context_instance_undefined,
dirs=_dirs_undefined,
dictionary=_dictionary_undefined,
using=None):
request=None, using=None):
"""
Loads a template and renders it with a context. Returns a string.
@@ -94,7 +94,7 @@ def render_to_string(template_name, context=None,
template = select_template(template_name, using=using)
else:
template = get_template(template_name, using=using)
return template.render(context)
return template.render(context, request)
else:
# Some deprecated arguments were passed - use the legacy code path
@@ -104,6 +104,11 @@ def render_to_string(template_name, context=None,
# to Django templates. Remove Engine.render_to_string() at the
# same time as this code path in Django 2.0.
if isinstance(engine, DjangoTemplates):
if request is not None:
raise ValueError(
"render_to_string doesn't support the request argument "
"when some deprecated arguments are passed.")
continue
# Hack -- use the internal Engine instance of DjangoTemplates.
return engine.engine.render_to_string(
template_name, context, context_instance, dirs, dictionary)