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. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9757 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
344f16e220
commit
14b3f03015
|
@ -55,7 +55,7 @@ from django.template.context import Context, RequestContext, ContextPopException
|
||||||
from django.utils.itercompat import is_iterable
|
from django.utils.itercompat import is_iterable
|
||||||
from django.utils.functional import curry, Promise
|
from django.utils.functional import curry, Promise
|
||||||
from django.utils.text import smart_split
|
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.translation import ugettext as _
|
||||||
from django.utils.safestring import SafeData, EscapeData, mark_safe, mark_for_escaping
|
from django.utils.safestring import SafeData, EscapeData, mark_safe, mark_for_escaping
|
||||||
from django.utils.html import escape
|
from django.utils.html import escape
|
||||||
|
@ -785,7 +785,8 @@ class TextNode(Node):
|
||||||
self.s = s
|
self.s = s
|
||||||
|
|
||||||
def __repr__(self):
|
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):
|
def render(self, context):
|
||||||
return self.s
|
return self.s
|
||||||
|
|
Loading…
Reference in New Issue