1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
Configuration
=============
The debug toolbar provides two settings that you can add in your project's
settings module to customize its behavior.
DEBUG_TOOLBAR_PANELS
--------------------
This setting specifies the full Python path to each panel that you want
included in the toolbar. It works like Django's ``MIDDLEWARE_CLASSES``
setting. The default value is::
DEBUG_TOOLBAR_PANELS = [
'debug_toolbar.panels.versions.VersionsPanel',
'debug_toolbar.panels.timer.TimerPanel',
'debug_toolbar.panels.settings.SettingsPanel',
'debug_toolbar.panels.headers.HeadersPanel',
'debug_toolbar.panels.request.RequestPanel',
'debug_toolbar.panels.sql.SQLPanel',
'debug_toolbar.panels.templates.TemplatesPanel',
'debug_toolbar.panels.cache.CachePanel',
'debug_toolbar.panels.signals.SignalsPanel',
'debug_toolbar.panels.logging.LoggingPanel',
'debug_toolbar.panels.redirects.RedirectsPanel',
]
This setting allows you to:
* add built-in panels that aren't enabled by default,
* add third-party panels,
* remove built-in panels,
* change the order of panels.
DEBUG_TOOLBAR_CONFIG
--------------------
This dictionary contains all other configuration options. Some apply to the
toolbar itself, others are specific to some panels.
Toolbar options
~~~~~~~~~~~~~~~
* ``INSERT_BEFORE``
Default: ``'</body>'``
The toolbar searches for this string in the HTML and inserts itself just
before.
* ``RENDER_PANELS``
Default: ``None``
If set to ``False``, the debug toolbar will keep the contents of panels in
memory on the server and load them on demand. If set to ``True``, it will
render panels inside every page. This may slow down page rendering but it's
required on multi-process servers, for example if you deploy the toolbar in
production (which isn't recommended).
The default value of ``None`` tells the toolbar to automatically do the
right thing depending on whether the WSGI container runs multiple processes.
This setting allows you to force a different behavior if needed.
* ``RESULTS_STORE_SIZE``
Default: ``10``
The toolbar keeps up to this many results in memory.
* ``ROOT_TAG_EXTRA_ATTRS``
Default: ``''``
This setting is injected in the root template div in order to avoid
conflicts with client-side frameworks. For example, when using the debug
toolbar with Angular.js, set this to ``'ng-non-bindable'`` or
``'class="ng-non-bindable"'``.
* ``SHOW_COLLAPSED``
Default: ``False``
If changed to ``True``, the toolbar will be collapsed by default.
* ``SHOW_TOOLBAR_CALLBACK``
Default: 'debug_toolbar.middleware.show_toolbar'
This is the dotted path to a function used for determining whether the
toolbar should show or not. The default checks are that ``DEBUG`` must be
set to ``True``, the IP of the request must be in ``INTERNAL_IPS``, and the
request must no be an AJAX request. You can provide your own function that
accepts a request in argument and returns ``True`` or ``False``.
Panel options
~~~~~~~~~~~~~
* ``EXTRA_SIGNALS``
Default: ``[]``
Panel: signals
A list of custom signals that might be in your project, defined as the
Python path to the signal.
* ``ENABLE_STACKTRACES``
Default: ``True``
Panels: cache, SQL
If set to ``True``, this will show stacktraces for SQL queries and cache
calls. Enabling stacktraces can increase the CPU time used when executing
queries.
* ``HIDE_IN_STACKTRACES``
Default: ``('socketserver', 'threading', 'wsgiref', 'debug_toolbar',
'django')``. The first value is ``socketserver`` on Python 3 and
``SocketServer`` on Python 2.
Panels: cache, SQL
Useful for eliminating server-related entries which can result
in enormous DOM structures and toolbar rendering delays.
* ``INTERCEPT_REDIRECTS``
Default: ``False``
Panel: redirects
If set to ``True``, the redirect panel will be active by default.
* ``SHOW_TEMPLATE_CONTEXT``
Default: ``True``
Panel: templates
If set to ``True`` then a template's context will be included with it in the
template debug panel. Turning this off is useful when you have large
template contexts, or you have template contexts with lazy datastructures
that you don't want to be evaluated.
* ``SQL_WARNING_THRESHOLD``
Default: ``500``
Panel: SQL
The SQL panel highlights queries that took more that this amount of time,
in milliseconds, to execute.
Here's an example::
def custom_show_toolbar(request):
return True # Always show toolbar, for example purposes only.
DEBUG_TOOLBAR_CONFIG = {
'INTERCEPT_REDIRECTS': True,
'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar,
'EXTRA_SIGNALS': ['myproject.signals.MySignal'],
'HIDE_DJANGO_SQL': False,
'TAG': 'div',
'ENABLE_STACKTRACES': True,
'HIDE_IN_STACKTRACES': ('gunicorn', 'newrelic'),
}
|