File tree Expand file tree Collapse file tree 3 files changed +21
-21
lines changed Expand file tree Collapse file tree 3 files changed +21
-21
lines changed Original file line number Diff line number Diff line change 11from functools import lru_cache
22
33from django .conf import settings
4+ from django .dispatch import receiver
5+ from django .test .signals import setting_changed
46
57CONFIG_DEFAULTS = {
68 # Toolbar options
@@ -71,3 +73,18 @@ def get_panels():
7173 except AttributeError :
7274 PANELS = PANELS_DEFAULTS
7375 return PANELS
76+
77+
78+ @receiver (setting_changed )
79+ def update_toolbar_config (* , setting , ** kwargs ):
80+ """
81+ Refresh configuration when overriding settings.
82+ """
83+ if setting == "DEBUG_TOOLBAR_CONFIG" :
84+ get_config .cache_clear ()
85+ elif setting == "DEBUG_TOOLBAR_PANELS" :
86+ from debug_toolbar .toolbar import DebugToolbar
87+
88+ get_panels .cache_clear ()
89+ DebugToolbar ._panel_classes = None
90+ # Not implemented: invalidate debug_toolbar.urls.
Original file line number Diff line number Diff line change @@ -4,6 +4,10 @@ Change log
44Next version
55------------
66
7+ * Reset settings when overridden in tests. Packages or projects using
8+ django-debug-toolbar can now use Django’s test settings tools, like
9+ ``@override_settings ``, to reconfigure the toolbar during tests.
10+
7113.2.3 (2021-12-12)
812------------------
913
Original file line number Diff line number Diff line change 1- # Refresh the debug toolbar's configuration when overriding settings.
2-
3- from django .dispatch import receiver
4- from django .test .signals import setting_changed
5-
6- from debug_toolbar import settings as dt_settings
7- from debug_toolbar .toolbar import DebugToolbar
8-
9-
10- @receiver (setting_changed )
11- def update_toolbar_config (** kwargs ):
12- if kwargs ["setting" ] == "DEBUG_TOOLBAR_CONFIG" :
13- dt_settings .get_config .cache_clear ()
14-
15-
16- @receiver (setting_changed )
17- def update_toolbar_panels (** kwargs ):
18- if kwargs ["setting" ] == "DEBUG_TOOLBAR_PANELS" :
19- dt_settings .get_panels .cache_clear ()
20- DebugToolbar ._panel_classes = None
21- # Not implemented: invalidate debug_toolbar.urls.
You can’t perform that action at this time.
0 commit comments