File tree 3 files changed +20
-21
lines changed
3 files changed +20
-21
lines changed Original file line number Diff line number Diff line change 1
1
from functools import lru_cache
2
2
3
3
from django .conf import settings
4
+ from django .dispatch import receiver
5
+ from django .test .signals import setting_changed
4
6
5
7
CONFIG_DEFAULTS = {
6
8
# Toolbar options
@@ -71,3 +73,18 @@ def get_panels():
71
73
except AttributeError :
72
74
PANELS = PANELS_DEFAULTS
73
75
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
7
7
* Removed support for Django < 3.2.
8
8
* Updated check ``W006 `` to look for
9
9
``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.
10
13
11
14
3.2.4 (2021-12-15)
12
15
------------------
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