Code

Ticket #4367: debug_py.diff

File debug_py.diff, 1.6 KB (added by Thomas Güttler <hv@…>, 7 years ago)
Line 
1Index: django/views/debug.py
2===================================================================
3--- django/views/debug.py       (Revision 5320)
4+++ django/views/debug.py       (Arbeitskopie)
5@@ -420,7 +420,7 @@
6                 {% for var in frame.vars|dictsort:"0" %}
7                   <tr>
8                     <td>{{ var.0 }}</td>
9-                    <td class="code"><div>{{ var.1|pprint|escape }}</div></td>
10+                    <td class="code"><div>{{ var.1|pprint|escape|smart_unicode_replace }}</div></td>
11                   </tr>
12                 {% endfor %}
13               </tbody>
14Index: django/template/defaultfilters.py
15===================================================================
16--- django/template/defaultfilters.py   (Revision 5320)
17+++ django/template/defaultfilters.py   (Arbeitskopie)
18@@ -3,7 +3,7 @@
19 from django.template import resolve_variable, Library
20 from django.conf import settings
21 from django.utils.translation import ugettext, ungettext
22-from django.utils.encoding import force_unicode, smart_str, iri_to_uri
23+from django.utils.encoding import force_unicode, smart_str, iri_to_uri, smart_unicode
24 import re
25 import random as random_module
26 
27@@ -554,6 +554,9 @@
28     except Exception, e:
29         return u"Error in formatting:%s" % force_unicode(e)
30 
31+def smart_unicode_replace(value):
32+    return smart_unicode(value, errors='replace')
33+
34 # Syntax: register.filter(name of filter, callback)
35 register.filter(add)
36 register.filter(addslashes)
37@@ -606,3 +609,4 @@
38 register.filter(wordcount)
39 register.filter(wordwrap)
40 register.filter(yesno)
41+register.filter(smart_unicode_replace)