Avoided rewrapping Contexts in render_to_response.

This change preserves backwards-compatibility for a very common misuse
of render_to_response which even occurred in the official documentation.

It fixes that misuse wherever it happened in the code base and docs.

Context.__init__ is documented as accepting a dict and nothing else.
Since Context is dict-like, Context(Context({})) could work to some
extent. However, things get complicated with RequestContext and that
gets in the way of refactoring the template engine. This is the real
rationale for this change.
This commit is contained in:
Aymeric Augustin 2014-11-22 09:22:38 +01:00
parent bf1bd0fbc9
commit 7331788300
7 changed files with 36 additions and 12 deletions

View file

@ -8,12 +8,13 @@ from .models import DebugObject
def request_processor(request):
return render_to_response(
'context_processors/request_attrs.html',
RequestContext(request, {}, processors=[context_processors.request]))
context_instance=RequestContext(request, {}, processors=[context_processors.request]))
def debug_processor(request):
return render_to_response(
'context_processors/debug.html',
RequestContext(request, {
context_instance=RequestContext(request, {
'debug_objects': DebugObject.objects,
}, processors=[context_processors.debug]))