From 86c5142461a9467ff5f1b186c6841866055b7bd9 Mon Sep 17 00:00:00 2001 From: Gary Wilson Jr Date: Mon, 30 Mar 2009 20:30:28 +0000 Subject: [PATCH] Fixed #10094 -- Fixed the `include` and `extends` template tags to work with filenames with spaces, patch from mcroydon. git-svn-id: http://code.djangoproject.com/svn/django/trunk@10211 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/template/loader_tags.py | 4 ++-- tests/regressiontests/templates/tests.py | 8 ++++++++ 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 c51122266a..33114c7476 100644 --- a/tests/regressiontests/templates/tests.py +++ b/tests/regressiontests/templates/tests.py @@ -661,6 +661,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 ####################################################### @@ -760,6 +762,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