diff options
| author | Dražen Odobašić <dodobas@quaternion.co> | 2018-07-31 15:57:11 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-07-31 09:57:11 -0400 |
| commit | 9f3b9ffd51c71d96728df9ee16f5a57c6f3b315d (patch) | |
| tree | 93495a6ba9313312848e968947e5cf2562afa87a | |
| parent | 4198445afcba94eb7a25b50c96ec6c2694ed2192 (diff) | |
Fixed #29617 -- Fixed Template crash if template_string is lazy.
Regression in 3a148f958dddd97c1379081118c30fbede6b6bc4.
| -rw-r--r-- | django/template/base.py | 2 | ||||
| -rw-r--r-- | docs/releases/2.0.8.txt | 3 | ||||
| -rw-r--r-- | tests/template_tests/test_base.py | 9 |
3 files changed, 12 insertions, 2 deletions
diff --git a/django/template/base.py b/django/template/base.py index c2376ff5a5..f6a60ecdf7 100644 --- a/django/template/base.py +++ b/django/template/base.py @@ -152,7 +152,7 @@ class Template: self.name = name self.origin = origin self.engine = engine - self.source = template_string + self.source = str(template_string) # May be lazy. self.nodelist = self.compile_nodelist() def __iter__(self): diff --git a/docs/releases/2.0.8.txt b/docs/releases/2.0.8.txt index c83a60cf81..16f4f4aede 100644 --- a/docs/releases/2.0.8.txt +++ b/docs/releases/2.0.8.txt @@ -11,3 +11,6 @@ Bugfixes * Fixed a regression in Django 2.0.7 that broke the ``regex`` lookup on MariaDB (even though MariaDB isn't officially supported) (:ticket:`29544`). + +* Fixed a regression where ``django.template.Template`` crashed if the + ``template_string`` argument is lazy (:ticket:`29617`). diff --git a/tests/template_tests/test_base.py b/tests/template_tests/test_base.py index 3bc857abee..475a647dd2 100644 --- a/tests/template_tests/test_base.py +++ b/tests/template_tests/test_base.py @@ -1,5 +1,12 @@ -from django.template.base import Variable, VariableDoesNotExist +from django.template import Context, Template, Variable, VariableDoesNotExist from django.test import SimpleTestCase +from django.utils.translation import gettext_lazy + + +class TemplateTests(SimpleTestCase): + def test_lazy_template_string(self): + template_string = gettext_lazy('lazy string') + self.assertEqual(Template(template_string).render(Context()), template_string) class VariableDoesNotExistTests(SimpleTestCase): |
