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 10:11:18 -0400 |
| commit | 253f1b74daac6300f6670929bfc0540ce1e71f7a (patch) | |
| tree | 3c7bfcecbf42c260597939bf64f0d7e44d31b339 | |
| parent | c26f001967a546165c03f06e19ae2423999fd639 (diff) | |
[2.0.x] Fixed #29617 -- Fixed Template crash if template_string is lazy.
Regression in 3a148f958dddd97c1379081118c30fbede6b6bc4.
Backport of 9f3b9ffd51c71d96728df9ee16f5a57c6f3b315d from master.
| -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 a90f8bfdd9..ba537df091 100644 --- a/django/template/base.py +++ b/django/template/base.py @@ -156,7 +156,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 5320af5e9a..9ab8c4e6c6 100644 --- a/tests/template_tests/test_base.py +++ b/tests/template_tests/test_base.py @@ -1,5 +1,12 @@ -from django.template.base import VariableDoesNotExist +from django.template import Context, Template, 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): |
