Fixed #5884 -- Added better display error handling for template variables.

Combined work from Karen Tracey and Thomas Güttler.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@7260 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2008-03-17 14:21:09 +00:00
parent 732074541a
commit b5adaec4c2
2 changed files with 5 additions and 2 deletions

View File

@ -129,7 +129,10 @@ class VariableDoesNotExist(Exception):
self.params = params
def __str__(self):
return self.msg % self.params
return unicode(self).encode('utf-8')
def __unicode__(self):
return self.msg % tuple([force_unicode(p, errors='replace') for p in self.params])
class InvalidTemplateLibrary(Exception):
pass

View File

@ -75,7 +75,7 @@ class DebugNodeList(NodeList):
raise
except Exception, e:
from sys import exc_info
wrapped = TemplateSyntaxError('Caught an exception while rendering: %s' % e)
wrapped = TemplateSyntaxError(u'Caught an exception while rendering: %s' % force_unicode(e, errors='replace'))
wrapped.source = node.source
wrapped.exc_info = exc_info()
raise wrapped