web/lib/django/template/debug.py
changeset 29 cc9b7e14412b
parent 0 0d40e90630ef
--- a/web/lib/django/template/debug.py	Wed May 19 17:43:59 2010 +0200
+++ b/web/lib/django/template/debug.py	Tue May 25 02:43:45 2010 +0200
@@ -2,6 +2,7 @@
 from django.utils.encoding import force_unicode
 from django.utils.html import escape
 from django.utils.safestring import SafeData, EscapeData
+from django.utils.formats import localize
 
 class DebugLexer(Lexer):
     def __init__(self, template_string, origin):
@@ -75,16 +76,19 @@
             raise
         except Exception, e:
             from sys import exc_info
-            wrapped = TemplateSyntaxError(u'Caught an exception while rendering: %s' % force_unicode(e, errors='replace'))
+            wrapped = TemplateSyntaxError(u'Caught %s while rendering: %s' %
+                (e.__class__.__name__, force_unicode(e, errors='replace')))
             wrapped.source = node.source
             wrapped.exc_info = exc_info()
-            raise wrapped
+            raise wrapped, None, wrapped.exc_info[2]
         return result
 
 class DebugVariableNode(VariableNode):
     def render(self, context):
         try:
-            output = force_unicode(self.filter_expression.resolve(context))
+            output = self.filter_expression.resolve(context)
+            output = localize(output)
+            output = force_unicode(output)
         except TemplateSyntaxError, e:
             if not hasattr(e, 'source'):
                 e.source = self.source