Skip to content

Commit aee0f95

Browse files
author
James Gutu
committed
fix for django unicode decode error
1 parent 0c81176 commit aee0f95

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

debug_toolbar/panels/settings.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from django.utils.encoding import force_str
22
from django.utils.translation import gettext_lazy as _
33
from django.views.debug import get_default_exception_reporter_filter
4+
from django.utils.encoding import DjangoUnicodeDecodeError
45

56
from debug_toolbar.panels import Panel
67

@@ -24,10 +25,17 @@ def title(self):
2425
)
2526

2627
def generate_stats(self, request, response):
28+
29+
def catch_force_errors(force_function, value):
30+
try:
31+
return force_function(value)
32+
except DjangoUnicodeDecodeError:
33+
return 'Debug toolbar was unable to parse value'
34+
2735
self.record_stats(
2836
{
2937
"settings": {
30-
key: force_str(value)
38+
key: catch_force_errors(force_str, value)
3139
for key, value in sorted(get_safe_settings().items())
3240
}
3341
}

tests/panels/test_settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from ..base import IntegrationTestCase
44

55

6-
@override_settings(DEBUG=True)
6+
@override_settings(DEBUG=True, RANDOM_SETTING=bytes.fromhex("a3f2b8c14e972d5a8fb3c7291a64e0859c472bf63d18a0945e73b2c84f917ae2"))
77
class SettingsIntegrationTestCase(IntegrationTestCase):
88
def test_panel_title(self):
99
response = self.client.get("/regular/basic/")

0 commit comments

Comments
 (0)