Commit 08451f17 authored by qingfeng's avatar qingfeng Committed by Claude Paroz
Browse files

Fixed #23060 -- Prevented UnicodeDecodeError in debug templatetag

parent 90faa196
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ class CycleNode(Node):
class DebugNode(Node):
    def render(self, context):
        from pprint import pformat
        output = [pformat(val) for val in context]
        output = [force_text(pformat(val)) for val in context]
        output.append('\n\n')
        output.append(pformat(sys.modules))
        return ''.join(output)
+10 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ import warnings

from django import template
from django.conf import settings
from django.contrib.auth.models import Group
from django.core import urlresolvers
from django.template import (base as template_base, loader, Context,
    RequestContext, Template, TemplateSyntaxError)
@@ -499,6 +500,15 @@ class TemplateRegressionTests(TestCase):
        with self.assertRaises(urlresolvers.NoReverseMatch):
            t.render(Context({}))

    def test_debug_tag_non_ascii(self):
        """
        Test non-ASCII model representation in debug output (#23060).
        """
        Group.objects.create(name="清風")
        c1 = Context({"objs": Group.objects.all()})
        t1 = Template('{% debug %}')
        self.assertIn("清風", t1.render(c1))


# Set ALLOWED_INCLUDE_ROOTS so that ssi works.
@override_settings(MEDIA_URL="/media/", STATIC_URL="/static/",