summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2009-01-16 09:00:24 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2009-01-16 09:00:24 +0000
commit7cef4ecd19b83e6592a1afaedf6aff6fcb7b9e6e (patch)
treee4960379210e9589821078cd6e9d383e5da23240
parentad93542c8fea08e8506369aef27b1c1f84d96c3c (diff)
[1.0.X] Fixed #10014 -- Don't crash when using debug template tag inside a block node tag.
Returning non-ASCII characters from TextNode.__repr__ was causing problems in the BlockNode.__repr__ method (and probably in other places we don't know about yet). We now forcibly convert to ascii and replace any unconvertible characters, rather than returning some moderately corrupted data in the non-ASCII case. Backport of r9757 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9758 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/template/__init__.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/django/template/__init__.py b/django/template/__init__.py
index f84a1cef66..bdc4b890d1 100644
--- a/django/template/__init__.py
+++ b/django/template/__init__.py
@@ -55,7 +55,7 @@ from django.template.context import Context, RequestContext, ContextPopException
from django.utils.itercompat import is_iterable
from django.utils.functional import curry, Promise
from django.utils.text import smart_split
-from django.utils.encoding import smart_unicode, force_unicode
+from django.utils.encoding import smart_unicode, force_unicode, smart_str
from django.utils.translation import ugettext as _
from django.utils.safestring import SafeData, EscapeData, mark_safe, mark_for_escaping
from django.utils.html import escape
@@ -785,7 +785,8 @@ class TextNode(Node):
self.s = s
def __repr__(self):
- return "<Text Node: '%s'>" % self.s[:25]
+ return "<Text Node: '%s'>" % smart_str(self.s[:25], 'ascii',
+ errors='replace')
def render(self, context):
return self.s