Code

Ticket #5046: views_debug_unicodeerror_hint.diff

File views_debug_unicodeerror_hint.diff, 1.1 KB (added by Thomas Güttler <hv@…>, 7 years ago)
Line 
1Index: views/debug.py
2===================================================================
3--- views/debug.py      (Revision 5776)
4+++ views/debug.py      (Arbeitskopie)
5@@ -123,10 +128,19 @@
6             'function': '?',
7             'lineno': '?',
8         }]
9+
10+    hint=""
11+    if issubclass(exc_type, UnicodeError):
12+        start=getattr(exc_value, 'start', None)
13+        end=getattr(exc_value, 'end', None)
14+        if start!=None and end!=None:
15+            ustr=exc_value.args[1]
16+            hint=smart_unicode(ustr[max(start-5, 0):min(end+5, len(ustr))], "ascii", "replace")
17     t = Template(TECHNICAL_500_TEMPLATE, name='Technical 500 template')
18     c = Context({
19         'exception_type': exc_type.__name__,
20         'exception_value': smart_unicode(exc_value, errors='replace'),
21+        'hint': hint,
22         'frames': frames,
23         'lastframe': frames[-1],
24         'request': request,
25@@ -356,6 +370,10 @@
26       <th>Python Version:</th>
27       <td>{{ sys_version_info }}</td>
28     </tr>
29+    <tr>
30+      <th>Hint:</th>
31+      <td>{{ hint }}</td>
32+    </tr>
33   </table>
34 </div>
35 {% if template_does_not_exist %}