summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Wilson Jr <gary.wilson@gmail.com>2009-03-30 20:33:42 +0000
committerGary Wilson Jr <gary.wilson@gmail.com>2009-03-30 20:33:42 +0000
commit487a7fdccee5b71f1f44acaafbaec58fa05120d5 (patch)
treee863773ade77bf03dd9c7c5d9bd67e1d0ef8cfe3
parentdaae84a8e0c292b77aabd5719d3022df72f47fc8 (diff)
[1.0.X]: Fixed #10094 -- Fixed the `include` and `extends` template tags to work with filenames with spaces, patch from mcroydon.
Backport of r10211 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@10212 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/template/loader_tags.py4
-rw-r--r--tests/regressiontests/templates/tests.py8
2 files changed, 10 insertions, 2 deletions
diff --git a/django/template/loader_tags.py b/django/template/loader_tags.py
index 38b2fff9fd..f91699d7f2 100644
--- a/django/template/loader_tags.py
+++ b/django/template/loader_tags.py
@@ -158,7 +158,7 @@ def do_extends(parser, token):
name of the parent template to extend (if it evaluates to a string) or as
the parent tempate itelf (if it evaluates to a Template object).
"""
- bits = token.contents.split()
+ bits = token.split_contents()
if len(bits) != 2:
raise TemplateSyntaxError, "'%s' takes one argument" % bits[0]
parent_name, parent_name_expr = None, None
@@ -179,7 +179,7 @@ def do_include(parser, token):
{% include "foo/some_include" %}
"""
- bits = token.contents.split()
+ bits = token.split_contents()
if len(bits) != 2:
raise TemplateSyntaxError, "%r tag takes one argument: the name of the template to be included" % bits[0]
path = bits[1]
diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py
index 08e7e5906e..734a598b1c 100644
--- a/tests/regressiontests/templates/tests.py
+++ b/tests/regressiontests/templates/tests.py
@@ -647,6 +647,8 @@ class Templates(unittest.TestCase):
'include02': ('{% include "basic-syntax02" %}', {'headline': 'Included'}, "Included"),
'include03': ('{% include template_name %}', {'template_name': 'basic-syntax02', 'headline': 'Included'}, "Included"),
'include04': ('a{% include "nonexistent" %}b', {}, "ab"),
+ 'include 05': ('template with a space', {}, 'template with a space'),
+ 'include06': ('{% include "include 05"%}', {}, 'template with a space'),
### NAMED ENDBLOCKS #######################################################
@@ -746,6 +748,12 @@ class Templates(unittest.TestCase):
# Inheritance from a template that doesn't have any blocks
'inheritance27': ("{% extends 'inheritance26' %}", {}, 'no tags'),
+ # Set up a base template with a space in it.
+ 'inheritance 28': ("{% block first %}!{% endblock %}", {}, '!'),
+
+ # Inheritance from a template with a space in its name should work.
+ 'inheritance29': ("{% extends 'inheritance 28' %}", {}, '!'),
+
### I18N ##################################################################
# {% spaceless %} tag