Loading django/template/context.py +7 −1 Original line number Diff line number Diff line Loading @@ -226,7 +226,13 @@ class RequestContext(Context): self.request = request self._processors = () if processors is None else tuple(processors) self._processors_index = len(self.dicts) self.update({}) # placeholder for context processors output # placeholder for context processors output self.update({}) # empty dict for any new modifications # (so that context processors don't overwrite them) self.update({}) @contextmanager def bind_template(self, template): Loading docs/releases/1.8.3.txt +3 −0 Original line number Diff line number Diff line Loading @@ -22,3 +22,6 @@ Bugfixes * Reverted an optimization to the CSRF template context processor which caused a regression (:ticket:`24836`). * Fixed a regression which caused template context processors to overwrite variables set on a ``RequestContext`` after it's created (:ticket:`24847`). tests/template_tests/test_context.py +10 −3 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ from django.http import HttpRequest from django.template import ( Context, Engine, RequestContext, Variable, VariableDoesNotExist, Context, Engine, RequestContext, Template, Variable, VariableDoesNotExist, ) from django.template.context import RenderContext from django.test import RequestFactory, SimpleTestCase Loading Loading @@ -153,8 +153,8 @@ class RequestContextTests(SimpleTestCase): request = RequestFactory().get('/') ctx = RequestContext(request, {}) # The stack should now contain 3 items: # [builtins, supplied context, context processor] self.assertEqual(len(ctx.dicts), 3) # [builtins, supplied context, context processor, empty dict] self.assertEqual(len(ctx.dicts), 4) def test_context_comparable(self): # Create an engine without any context processors. Loading @@ -168,3 +168,10 @@ class RequestContextTests(SimpleTestCase): RequestContext(request, dict_=test_data), RequestContext(request, dict_=test_data), ) def test_modify_context_and_render(self): template = Template('{{ foo }}') request = RequestFactory().get('/') context = RequestContext(request, {}) context['foo'] = 'foo' self.assertEqual(template.render(context), 'foo') Loading
django/template/context.py +7 −1 Original line number Diff line number Diff line Loading @@ -226,7 +226,13 @@ class RequestContext(Context): self.request = request self._processors = () if processors is None else tuple(processors) self._processors_index = len(self.dicts) self.update({}) # placeholder for context processors output # placeholder for context processors output self.update({}) # empty dict for any new modifications # (so that context processors don't overwrite them) self.update({}) @contextmanager def bind_template(self, template): Loading
docs/releases/1.8.3.txt +3 −0 Original line number Diff line number Diff line Loading @@ -22,3 +22,6 @@ Bugfixes * Reverted an optimization to the CSRF template context processor which caused a regression (:ticket:`24836`). * Fixed a regression which caused template context processors to overwrite variables set on a ``RequestContext`` after it's created (:ticket:`24847`).
tests/template_tests/test_context.py +10 −3 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ from django.http import HttpRequest from django.template import ( Context, Engine, RequestContext, Variable, VariableDoesNotExist, Context, Engine, RequestContext, Template, Variable, VariableDoesNotExist, ) from django.template.context import RenderContext from django.test import RequestFactory, SimpleTestCase Loading Loading @@ -153,8 +153,8 @@ class RequestContextTests(SimpleTestCase): request = RequestFactory().get('/') ctx = RequestContext(request, {}) # The stack should now contain 3 items: # [builtins, supplied context, context processor] self.assertEqual(len(ctx.dicts), 3) # [builtins, supplied context, context processor, empty dict] self.assertEqual(len(ctx.dicts), 4) def test_context_comparable(self): # Create an engine without any context processors. Loading @@ -168,3 +168,10 @@ class RequestContextTests(SimpleTestCase): RequestContext(request, dict_=test_data), RequestContext(request, dict_=test_data), ) def test_modify_context_and_render(self): template = Template('{{ foo }}') request = RequestFactory().get('/') context = RequestContext(request, {}) context['foo'] = 'foo' self.assertEqual(template.render(context), 'foo')