1 | django/django/views/templates/technical_500.html
|
---|
2 | @malikarumi malikarumi changed default pastebin link to dpaste.de, which is the site used by Django IRC.
|
---|
3 | This is related to #11919 & #26611. I also changed the submit value on the button to match.
|
---|
4 |
|
---|
5 | @timgraham @claudep
|
---|
6 |
|
---|
7 | 486 lines (470 sloc) 16.8 KB
|
---|
8 | <!DOCTYPE html>
|
---|
9 | <html lang="en">
|
---|
10 | <head>
|
---|
11 | <meta http-equiv="content-type" content="text/html; charset=utf-8">
|
---|
12 | <meta name="robots" content="NONE,NOARCHIVE">
|
---|
13 | <title>{% if exception_type %}{{ exception_type }}{% else %}Report{% endif %}
|
---|
14 | {% if request %} at {{ request.path_info }}{% endif %}</title>
|
---|
15 | <style type="text/css">
|
---|
16 | html * { padding:0; margin:0; }
|
---|
17 | body * { padding:10px 20px; }
|
---|
18 | body * * { padding:0; }
|
---|
19 | body { font:small sans-serif; background-color:#fff; color:#000; }
|
---|
20 | body>div { border-bottom:1px solid #ddd; }
|
---|
21 | h1 { font-weight:normal; }
|
---|
22 | h2 { margin-bottom:.8em; }
|
---|
23 | h2 span { font-size:80%; color:#666; font-weight:normal; }
|
---|
24 | h3 { margin:1em 0 .5em 0; }
|
---|
25 | h4 { margin:0 0 .5em 0; font-weight: normal; }
|
---|
26 | code, pre { font-size: 100%; white-space: pre-wrap; }
|
---|
27 | table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
|
---|
28 | tbody td, tbody th { vertical-align:top; padding:2px 3px; }
|
---|
29 | thead th {
|
---|
30 | padding:1px 6px 1px 3px; background:#fefefe; text-align:left;
|
---|
31 | font-weight:normal; font-size:11px; border:1px solid #ddd;
|
---|
32 | }
|
---|
33 | tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
|
---|
34 | table.vars { margin:5px 0 2px 40px; }
|
---|
35 | table.vars td, table.req td { font-family:monospace; }
|
---|
36 | table td.code { width:100%; }
|
---|
37 | table td.code pre { overflow:hidden; }
|
---|
38 | table.source th { color:#666; }
|
---|
39 | table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
|
---|
40 | ul.traceback { list-style-type:none; color: #222; }
|
---|
41 | ul.traceback li.frame { padding-bottom:1em; color:#666; }
|
---|
42 | ul.traceback li.user { background-color:#e0e0e0; color:#000 }
|
---|
43 | div.context { padding:10px 0; overflow:hidden; }
|
---|
44 | div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
|
---|
45 | div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; }
|
---|
46 | div.context ol li pre { display:inline; }
|
---|
47 | div.context ol.context-line li { color:#505050; background-color:#dfdfdf; padding: 3px 2px; }
|
---|
48 | div.context ol.context-line li span { position:absolute; right:32px; }
|
---|
49 | .user div.context ol.context-line li { background-color:#bbb; color:#000; }
|
---|
50 | .user div.context ol li { color:#666; }
|
---|
51 | div.commands { margin-left: 40px; }
|
---|
52 | div.commands a { color:#555; text-decoration:none; }
|
---|
53 | .user div.commands a { color: black; }
|
---|
54 | #summary { background: #ffc; }
|
---|
55 | #summary h2 { font-weight: normal; color: #666; }
|
---|
56 | #explanation { background:#eee; }
|
---|
57 | #template, #template-not-exist { background:#f6f6f6; }
|
---|
58 | #template-not-exist ul { margin: 0 0 10px 20px; }
|
---|
59 | #template-not-exist .postmortem-section { margin-bottom: 3px; }
|
---|
60 | #unicode-hint { background:#eee; }
|
---|
61 | #traceback { background:#eee; }
|
---|
62 | #requestinfo { background:#f6f6f6; padding-left:120px; }
|
---|
63 | #summary table { border:none; background:transparent; }
|
---|
64 | #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
|
---|
65 | #requestinfo h3 { margin-bottom:-1em; }
|
---|
66 | .error { background: #ffc; }
|
---|
67 | .specific { color:#cc3300; font-weight:bold; }
|
---|
68 | h2 span.commands { font-size:.7em;}
|
---|
69 | span.commands a:link {color:#5E5694;}
|
---|
70 | pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
|
---|
71 | .append-bottom { margin-bottom: 10px; }
|
---|
72 | </style>
|
---|
73 | {% if not is_email %}
|
---|
74 | <script type="text/javascript">
|
---|
75 | function hideAll(elems) {
|
---|
76 | for (var e = 0; e < elems.length; e++) {
|
---|
77 | elems[e].style.display = 'none';
|
---|
78 | }
|
---|
79 | }
|
---|
80 | window.onload = function() {
|
---|
81 | hideAll(document.querySelectorAll('table.vars'));
|
---|
82 | hideAll(document.querySelectorAll('ol.pre-context'));
|
---|
83 | hideAll(document.querySelectorAll('ol.post-context'));
|
---|
84 | hideAll(document.querySelectorAll('div.pastebin'));
|
---|
85 | }
|
---|
86 | function toggle() {
|
---|
87 | for (var i = 0; i < arguments.length; i++) {
|
---|
88 | var e = document.getElementById(arguments[i]);
|
---|
89 | if (e) {
|
---|
90 | e.style.display = e.style.display == 'none' ? 'block': 'none';
|
---|
91 | }
|
---|
92 | }
|
---|
93 | return false;
|
---|
94 | }
|
---|
95 | function varToggle(link, id) {
|
---|
96 | toggle('v' + id);
|
---|
97 | var s = link.getElementsByTagName('span')[0];
|
---|
98 | var uarr = String.fromCharCode(0x25b6);
|
---|
99 | var darr = String.fromCharCode(0x25bc);
|
---|
100 | s.textContent = s.textContent == uarr ? darr : uarr;
|
---|
101 | return false;
|
---|
102 | }
|
---|
103 | function switchPastebinFriendly(link) {
|
---|
104 | s1 = "Switch to copy-and-paste view";
|
---|
105 | s2 = "Switch back to interactive view";
|
---|
106 | link.textContent = link.textContent.trim() == s1 ? s2: s1;
|
---|
107 | toggle('browserTraceback', 'pastebinTraceback');
|
---|
108 | return false;
|
---|
109 | }
|
---|
110 | </script>
|
---|
111 | {% endif %}
|
---|
112 | </head>
|
---|
113 | <body>
|
---|
114 | <div id="summary">
|
---|
115 | <h1>{% if exception_type %}{{ exception_type }}{% else %}Report{% endif %}
|
---|
116 | {% if request %} at {{ request.path_info }}{% endif %}</h1>
|
---|
117 | <pre class="exception_value">{% if exception_value %}{{ exception_value|force_escape }}{% else %}No exception message supplied{% endif %}</pre>
|
---|
118 | <table class="meta">
|
---|
119 | {% if request %}
|
---|
120 | <tr>
|
---|
121 | <th>Request Method:</th>
|
---|
122 | <td>{{ request.META.REQUEST_METHOD }}</td>
|
---|
123 | </tr>
|
---|
124 | <tr>
|
---|
125 | <th>Request URL:</th>
|
---|
126 | <td>{{ request.get_raw_uri }}</td>
|
---|
127 | </tr>
|
---|
128 | {% endif %}
|
---|
129 | <tr>
|
---|
130 | <th>Django Version:</th>
|
---|
131 | <td>{{ django_version_info }}</td>
|
---|
132 | </tr>
|
---|
133 | {% if exception_type %}
|
---|
134 | <tr>
|
---|
135 | <th>Exception Type:</th>
|
---|
136 | <td>{{ exception_type }}</td>
|
---|
137 | </tr>
|
---|
138 | {% endif %}
|
---|
139 | {% if exception_type and exception_value %}
|
---|
140 | <tr>
|
---|
141 | <th>Exception Value:</th>
|
---|
142 | <td><pre>{{ exception_value|force_escape }}</pre></td>
|
---|
143 | </tr>
|
---|
144 | {% endif %}
|
---|
145 | {% if lastframe %}
|
---|
146 | <tr>
|
---|
147 | <th>Exception Location:</th>
|
---|
148 | <td>{{ lastframe.filename }} in {{ lastframe.function }}, line {{ lastframe.lineno }}</td>
|
---|
149 | </tr>
|
---|
150 | {% endif %}
|
---|
151 | <tr>
|
---|
152 | <th>Python Executable:</th>
|
---|
153 | <td>{{ sys_executable }}</td>
|
---|
154 | </tr>
|
---|
155 | <tr>
|
---|
156 | <th>Python Version:</th>
|
---|
157 | <td>{{ sys_version_info }}</td>
|
---|
158 | </tr>
|
---|
159 | <tr>
|
---|
160 | <th>Python Path:</th>
|
---|
161 | <td><pre>{{ sys_path|pprint }}</pre></td>
|
---|
162 | </tr>
|
---|
163 | <tr>
|
---|
164 | <th>Server time:</th>
|
---|
165 | <td>{{server_time|date:"r"}}</td>
|
---|
166 | </tr>
|
---|
167 | </table>
|
---|
168 | </div>
|
---|
169 | {% if unicode_hint %}
|
---|
170 | <div id="unicode-hint">
|
---|
171 | <h2>Unicode error hint</h2>
|
---|
172 | <p>The string that could not be encoded/decoded was: <strong>{{ unicode_hint }}</strong></p>
|
---|
173 | </div>
|
---|
174 | {% endif %}
|
---|
175 | {% if template_does_not_exist %}
|
---|
176 | <div id="template-not-exist">
|
---|
177 | <h2>Template-loader postmortem</h2>
|
---|
178 | {% if postmortem %}
|
---|
179 | <p class="append-bottom">Django tried loading these templates, in this order:</p>
|
---|
180 | {% for entry in postmortem %}
|
---|
181 | <p class="postmortem-section">Using engine <code>{{ entry.backend.name }}</code>:</p>
|
---|
182 | <ul>
|
---|
183 | {% if entry.tried %}
|
---|
184 | {% for attempt in entry.tried %}
|
---|
185 | <li><code>{{ attempt.0.loader_name }}</code>: {{ attempt.0.name }} ({{ attempt.1 }})</li>
|
---|
186 | {% endfor %}
|
---|
187 | {% else %}
|
---|
188 | <li>This engine did not provide a list of tried templates.</li>
|
---|
189 | {% endif %}
|
---|
190 | </ul>
|
---|
191 | {% endfor %}
|
---|
192 | {% else %}
|
---|
193 | <p>No templates were found because your 'TEMPLATES' setting is not configured.</p>
|
---|
194 | {% endif %}
|
---|
195 | </div>
|
---|
196 | {% endif %}
|
---|
197 | {% if template_info %}
|
---|
198 | <div id="template">
|
---|
199 | <h2>Error during template rendering</h2>
|
---|
200 | <p>In template <code>{{ template_info.name }}</code>, error at line <strong>{{ template_info.line }}</strong></p>
|
---|
201 | <h3>{{ template_info.message }}</h3>
|
---|
202 | <table class="source{% if template_info.top %} cut-top{% endif %}
|
---|
203 | {% if template_info.bottom != template_info.total %} cut-bottom{% endif %}">
|
---|
204 | {% for source_line in template_info.source_lines %}
|
---|
205 | {% if source_line.0 == template_info.line %}
|
---|
206 | <tr class="error"><th>{{ source_line.0 }}</th>
|
---|
207 | <td>{{ template_info.before }}<span class="specific">{{ template_info.during }}</span>{{ template_info.after }}</td>
|
---|
208 | </tr>
|
---|
209 | {% else %}
|
---|
210 | <tr><th>{{ source_line.0 }}</th>
|
---|
211 | <td>{{ source_line.1 }}</td></tr>
|
---|
212 | {% endif %}
|
---|
213 | {% endfor %}
|
---|
214 | </table>
|
---|
215 | </div>
|
---|
216 | {% endif %}
|
---|
217 | {% if frames %}
|
---|
218 | <div id="traceback">
|
---|
219 | <h2>Traceback <span class="commands">{% if not is_email %}<a href="#" onclick="return switchPastebinFriendly(this);">
|
---|
220 | Switch to copy-and-paste view</a></span>{% endif %}
|
---|
221 | </h2>
|
---|
222 | <div id="browserTraceback">
|
---|
223 | <ul class="traceback">
|
---|
224 | {% for frame in frames %}
|
---|
225 | {% ifchanged frame.exc_cause %}{% if frame.exc_cause %}
|
---|
226 | <li><h3>
|
---|
227 | {% if frame.exc_cause_explicit %}
|
---|
228 | The above exception ({{ frame.exc_cause|force_escape }}) was the direct cause of the following exception:
|
---|
229 | {% else %}
|
---|
230 | During handling of the above exception ({{ frame.exc_cause|force_escape }}), another exception occurred:
|
---|
231 | {% endif %}
|
---|
232 | </h3></li>
|
---|
233 | {% endif %}{% endifchanged %}
|
---|
234 | <li class="frame {{ frame.type }}">
|
---|
235 | <code>{{ frame.filename }}</code> in <code>{{ frame.function }}</code>
|
---|
236 |
|
---|
237 | {% if frame.context_line %}
|
---|
238 | <div class="context" id="c{{ frame.id }}">
|
---|
239 | {% if frame.pre_context and not is_email %}
|
---|
240 | <ol start="{{ frame.pre_context_lineno }}" class="pre-context" id="pre{{ frame.id }}">
|
---|
241 | {% for line in frame.pre_context %}
|
---|
242 | <li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')"><pre>{{ line }}</pre></li>
|
---|
243 | {% endfor %}
|
---|
244 | </ol>
|
---|
245 | {% endif %}
|
---|
246 | <ol start="{{ frame.lineno }}" class="context-line">
|
---|
247 | <li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')"><pre>{{ frame.context_line }}</pre>{% if not is_email %} <span>...</span>{% endif %}</li>
|
---|
248 | </ol>
|
---|
249 | {% if frame.post_context and not is_email %}
|
---|
250 | <ol start='{{ frame.lineno|add:"1" }}' class="post-context" id="post{{ frame.id }}">
|
---|
251 | {% for line in frame.post_context %}
|
---|
252 | <li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')"><pre>{{ line }}</pre></li>
|
---|
253 | {% endfor %}
|
---|
254 | </ol>
|
---|
255 | {% endif %}
|
---|
256 | </div>
|
---|
257 | {% endif %}
|
---|
258 |
|
---|
259 | {% if frame.vars %}
|
---|
260 | <div class="commands">
|
---|
261 | {% if is_email %}
|
---|
262 | <h2>Local Vars</h2>
|
---|
263 | {% else %}
|
---|
264 | <a href="#" onclick="return varToggle(this, '{{ frame.id }}')"><span>▶</span> Local vars</a>
|
---|
265 | {% endif %}
|
---|
266 | </div>
|
---|
267 | <table class="vars" id="v{{ frame.id }}">
|
---|
268 | <thead>
|
---|
269 | <tr>
|
---|
270 | <th>Variable</th>
|
---|
271 | <th>Value</th>
|
---|
272 | </tr>
|
---|
273 | </thead>
|
---|
274 | <tbody>
|
---|
275 | {% for var in frame.vars|dictsort:0 %}
|
---|
276 | <tr>
|
---|
277 | <td>{{ var.0 }}</td>
|
---|
278 | <td class="code"><pre>{{ var.1 }}</pre></td>
|
---|
279 | </tr>
|
---|
280 | {% endfor %}
|
---|
281 | </tbody>
|
---|
282 | </table>
|
---|
283 | {% endif %}
|
---|
284 | </li>
|
---|
285 | {% endfor %}
|
---|
286 | </ul>
|
---|
287 | </div>
|
---|
288 | <form action="https://dpaste.de/" name="pasteform" id="pasteform" method="post">
|
---|
289 | {% if not is_email %}
|
---|
290 | <div id="pastebinTraceback" class="pastebin">
|
---|
291 | <input type="hidden" name="language" value="PythonConsole">
|
---|
292 | <input type="hidden" name="title"
|
---|
293 | value="{{ exception_type }}{% if request %} at {{ request.path_info }}{% endif %}">
|
---|
294 | <input type="hidden" name="source" value="Django Dpaste Agent">
|
---|
295 | <input type="hidden" name="poster" value="Django">
|
---|
296 | <textarea name="content" id="traceback_area" cols="140" rows="25">
|
---|
297 | Environment:
|
---|
298 |
|
---|
299 | {% if request %}
|
---|
300 | Request Method: {{ request.META.REQUEST_METHOD }}
|
---|
301 | Request URL: {{ request.get_raw_uri }}
|
---|
302 | {% endif %}
|
---|
303 | Django Version: {{ django_version_info }}
|
---|
304 | Python Version: {{ sys_version_info }}
|
---|
305 | Installed Applications:
|
---|
306 | {{ settings.INSTALLED_APPS|pprint }}
|
---|
307 | Installed Middleware:
|
---|
308 | {{ settings.MIDDLEWARE|pprint }}
|
---|
309 |
|
---|
310 | {% if template_does_not_exist %}Template loader postmortem
|
---|
311 | {% if postmortem %}Django tried loading these templates, in this order:
|
---|
312 | {% for entry in postmortem %}
|
---|
313 | Using engine {{ entry.backend.name }}:
|
---|
314 | {% if entry.tried %}{% for attempt in entry.tried %} * {{ attempt.0.loader_name }}: {{ attempt.0.name }} ({{ attempt.1 }})
|
---|
315 | {% endfor %}{% else %} This engine did not provide a list of tried templates.
|
---|
316 | {% endif %}{% endfor %}
|
---|
317 | {% else %}No templates were found because your 'TEMPLATES' setting is not configured.
|
---|
318 | {% endif %}{% endif %}{% if template_info %}
|
---|
319 | Template error:
|
---|
320 | In template {{ template_info.name }}, error at line {{ template_info.line }}
|
---|
321 | {{ template_info.message }}
|
---|
322 | {% for source_line in template_info.source_lines %}{% if source_line.0 == template_info.line %} {{ source_line.0 }} : {{ template_info.before }} {{ template_info.during }} {{ template_info.after }}{% else %} {{ source_line.0 }} : {{ source_line.1 }}{% endif %}{% endfor %}{% endif %}
|
---|
323 |
|
---|
324 | Traceback:{% for frame in frames %}
|
---|
325 | {% ifchanged frame.exc_cause %}{% if frame.exc_cause %}{% if frame.exc_cause_explicit %}
|
---|
326 | The above exception ({{ frame.exc_cause|force_escape }}) was the direct cause of the following exception:
|
---|
327 | {% else %}
|
---|
328 | During handling of the above exception ({{ frame.exc_cause|force_escape }}), another exception occurred:
|
---|
329 | {% endif %}{% endif %}{% endifchanged %}
|
---|
330 | File "{{ frame.filename }}" in {{ frame.function }}
|
---|
331 | {% if frame.context_line %} {{ frame.lineno }}. {{ frame.context_line }}{% endif %}{% endfor %}
|
---|
332 |
|
---|
333 | Exception Type: {{ exception_type }}{% if request %} at {{ request.path_info }}{% endif %}
|
---|
334 | Exception Value: {{ exception_value|force_escape }}
|
---|
335 | </textarea>
|
---|
336 | <br><br>
|
---|
337 | <input type="submit" value="Share this traceback on dpaste.de">
|
---|
338 | </div>
|
---|
339 | </form>
|
---|
340 | </div>
|
---|
341 | {% endif %}
|
---|
342 | {% endif %}
|
---|
343 |
|
---|
344 | <div id="requestinfo">
|
---|
345 | <h2>Request information</h2>
|
---|
346 |
|
---|
347 | {% if request %}
|
---|
348 | {% if user_str %}
|
---|
349 | <h3 id="user-info">USER</h3>
|
---|
350 | <p>{{ user_str }}</p>
|
---|
351 | {% endif %}
|
---|
352 |
|
---|
353 | <h3 id="get-info">GET</h3>
|
---|
354 | {% if request.GET %}
|
---|
355 | <table class="req">
|
---|
356 | <thead>
|
---|
357 | <tr>
|
---|
358 | <th>Variable</th>
|
---|
359 | <th>Value</th>
|
---|
360 | </tr>
|
---|
361 | </thead>
|
---|
362 | <tbody>
|
---|
363 | {% for k, v in request_GET_items %}
|
---|
364 | <tr>
|
---|
365 | <td>{{ k }}</td>
|
---|
366 | <td class="code"><pre>{{ v|pprint }}</pre></td>
|
---|
367 | </tr>
|
---|
368 | {% endfor %}
|
---|
369 | </tbody>
|
---|
370 | </table>
|
---|
371 | {% else %}
|
---|
372 | <p>No GET data</p>
|
---|
373 | {% endif %}
|
---|
374 |
|
---|
375 | <h3 id="post-info">POST</h3>
|
---|
376 | {% if filtered_POST_items %}
|
---|
377 | <table class="req">
|
---|
378 | <thead>
|
---|
379 | <tr>
|
---|
380 | <th>Variable</th>
|
---|
381 | <th>Value</th>
|
---|
382 | </tr>
|
---|
383 | </thead>
|
---|
384 | <tbody>
|
---|
385 | {% for k, v in filtered_POST_items %}
|
---|
386 | <tr>
|
---|
387 | <td>{{ k }}</td>
|
---|
388 | <td class="code"><pre>{{ v|pprint }}</pre></td>
|
---|
389 | </tr>
|
---|
390 | {% endfor %}
|
---|
391 | </tbody>
|
---|
392 | </table>
|
---|
393 | {% else %}
|
---|
394 | <p>No POST data</p>
|
---|
395 | {% endif %}
|
---|
396 | <h3 id="files-info">FILES</h3>
|
---|
397 | {% if request.FILES %}
|
---|
398 | <table class="req">
|
---|
399 | <thead>
|
---|
400 | <tr>
|
---|
401 | <th>Variable</th>
|
---|
402 | <th>Value</th>
|
---|
403 | </tr>
|
---|
404 | </thead>
|
---|
405 | <tbody>
|
---|
406 | {% for k, v in request_FILES_items %}
|
---|
407 | <tr>
|
---|
408 | <td>{{ k }}</td>
|
---|
409 | <td class="code"><pre>{{ v|pprint }}</pre></td>
|
---|
410 | </tr>
|
---|
411 | {% endfor %}
|
---|
412 | </tbody>
|
---|
413 | </table>
|
---|
414 | {% else %}
|
---|
415 | <p>No FILES data</p>
|
---|
416 | {% endif %}
|
---|
417 |
|
---|
418 |
|
---|
419 | <h3 id="cookie-info">COOKIES</h3>
|
---|
420 | {% if request.COOKIES %}
|
---|
421 | <table class="req">
|
---|
422 | <thead>
|
---|
423 | <tr>
|
---|
424 | <th>Variable</th>
|
---|
425 | <th>Value</th>
|
---|
426 | </tr>
|
---|
427 | </thead>
|
---|
428 | <tbody>
|
---|
429 | {% for k, v in request_COOKIES_items %}
|
---|
430 | <tr>
|
---|
431 | <td>{{ k }}</td>
|
---|
432 | <td class="code"><pre>{{ v|pprint }}</pre></td>
|
---|
433 | </tr>
|
---|
434 | {% endfor %}
|
---|
435 | </tbody>
|
---|
436 | </table>
|
---|
437 | {% else %}
|
---|
438 | <p>No cookie data</p>
|
---|
439 | {% endif %}
|
---|
440 |
|
---|
441 | <h3 id="meta-info">META</h3>
|
---|
442 | <table class="req">
|
---|
443 | <thead>
|
---|
444 | <tr>
|
---|
445 | <th>Variable</th>
|
---|
446 | <th>Value</th>
|
---|
447 | </tr>
|
---|
448 | </thead>
|
---|
449 | <tbody>
|
---|
450 | {% for var in request.META.items|dictsort:0 %}
|
---|
451 | <tr>
|
---|
452 | <td>{{ var.0 }}</td>
|
---|
453 | <td class="code"><pre>{{ var.1|pprint }}</pre></td>
|
---|
454 | </tr>
|
---|
455 | {% endfor %}
|
---|
456 | </tbody>
|
---|
457 | </table>
|
---|
458 | {% else %}
|
---|
459 | <p>Request data not supplied</p>
|
---|
460 | {% endif %}
|
---|
461 |
|
---|
462 | <h3 id="settings-info">Settings</h3>
|
---|
463 | <h4>Using settings module <code>{{ settings.SETTINGS_MODULE }}</code></h4>
|
---|
464 | <table class="req">
|
---|
465 | <thead>
|
---|
466 | <tr>
|
---|
467 | <th>Setting</th>
|
---|
468 | <th>Value</th>
|
---|
469 | </tr>
|
---|
470 | </thead>
|
---|
471 | <tbody>
|
---|
472 | {% for var in settings.items|dictsort:0 %}
|
---|
473 | <tr>
|
---|
474 | <td>{{ var.0 }}</td>
|
---|
475 | <td class="code"><pre>{{ var.1|pprint }}</pre></td>
|
---|
476 | </tr>
|
---|
477 | {% endfor %}
|
---|
478 | </tbody>
|
---|
479 | </table>
|
---|
480 |
|
---|
481 | </div>
|
---|
482 | {% if not is_email %}
|
---|
483 | <div id="explanation">
|
---|
484 | <p>
|
---|
485 | You're seeing this error because you have <code>DEBUG = True</code> in your
|
---|
486 | Django settings file. Change that to <code>False</code>, and Django will
|
---|
487 | display a standard page generated by the handler for this status code.
|
---|
488 | </p>
|
---|
489 | </div>
|
---|
490 | {% endif %}
|
---|
491 | </body>
|
---|
492 | </html>
|
---|