File tree Expand file tree Collapse file tree 3 files changed +20
-21
lines changed Expand file tree Collapse file tree 3 files changed +20
-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 @@ -7,6 +7,9 @@ Next version
77* Removed support for Django < 3.2.
88* Updated check ``W006 `` to look for
99 ``django.template.loaders.app_directories.Loader ``.
10+ * Reset settings when overridden in tests. Packages or projects using
11+ django-debug-toolbar can now use Django’s test settings tools, like
12+ ``@override_settings ``, to reconfigure the toolbar during tests.
1013
11143.2.4 (2021-12-15)
1215------------------
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