summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-03-17 14:21:09 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-03-17 14:21:09 +0000
commitb5adaec4c23e3fa8ab52da1c10eb52f775d02209 (patch)
tree6c7db0ba27240881970d9e9a75d57d5247c4018c
parent732074541a17cde1d6d634007949d8a8c83cdc1a (diff)
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
-rw-r--r--django/template/__init__.py5
-rw-r--r--django/template/debug.py2
2 files changed, 5 insertions, 2 deletions
diff --git a/django/template/__init__.py b/django/template/__init__.py
index 29daa76eac..e60ff64ebf 100644
--- a/django/template/__init__.py
+++ b/django/template/__init__.py
@@ -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
diff --git a/django/template/debug.py b/django/template/debug.py
index 008059c28f..c58c854858 100644
--- a/django/template/debug.py
+++ b/django/template/debug.py
@@ -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