Created
September 28, 2016 12:09
-
-
Save timwis/d420a3ee18fbe49d2346debc9d69b411 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta http-equiv="content-type" content="text/html; charset=utf-8"> | |
<meta name="robots" content="NONE,NOARCHIVE"> | |
<title>AttributeError at /api/travel-request/</title> | |
<style type="text/css"> | |
html * { padding:0; margin:0; } | |
body * { padding:10px 20px; } | |
body * * { padding:0; } | |
body { font:small sans-serif; } | |
body>div { border-bottom:1px solid #ddd; } | |
h1 { font-weight:normal; } | |
h2 { margin-bottom:.8em; } | |
h2 span { font-size:80%; color:#666; font-weight:normal; } | |
h3 { margin:1em 0 .5em 0; } | |
h4 { margin:0 0 .5em 0; font-weight: normal; } | |
code, pre { font-size: 100%; white-space: pre-wrap; } | |
table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; } | |
tbody td, tbody th { vertical-align:top; padding:2px 3px; } | |
thead th { | |
padding:1px 6px 1px 3px; background:#fefefe; text-align:left; | |
font-weight:normal; font-size:11px; border:1px solid #ddd; | |
} | |
tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; } | |
table.vars { margin:5px 0 2px 40px; } | |
table.vars td, table.req td { font-family:monospace; } | |
table td.code { width:100%; } | |
table td.code pre { overflow:hidden; } | |
table.source th { color:#666; } | |
table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; } | |
ul.traceback { list-style-type:none; color: #222; } | |
ul.traceback li.frame { padding-bottom:1em; color:#666; } | |
ul.traceback li.user { background-color:#e0e0e0; color:#000 } | |
div.context { padding:10px 0; overflow:hidden; } | |
div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; } | |
div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; } | |
div.context ol li pre { display:inline; } | |
div.context ol.context-line li { color:#505050; background-color:#dfdfdf; padding: 3px 2px; } | |
div.context ol.context-line li span { position:absolute; right:32px; } | |
.user div.context ol.context-line li { background-color:#bbb; color:#000; } | |
.user div.context ol li { color:#666; } | |
div.commands { margin-left: 40px; } | |
div.commands a { color:#555; text-decoration:none; } | |
.user div.commands a { color: black; } | |
#summary { background: #ffc; } | |
#summary h2 { font-weight: normal; color: #666; } | |
#explanation { background:#eee; } | |
#template, #template-not-exist { background:#f6f6f6; } | |
#template-not-exist ul { margin: 0 0 10px 20px; } | |
#template-not-exist .postmortem-section { margin-bottom: 3px; } | |
#unicode-hint { background:#eee; } | |
#traceback { background:#eee; } | |
#requestinfo { background:#f6f6f6; padding-left:120px; } | |
#summary table { border:none; background:transparent; } | |
#requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; } | |
#requestinfo h3 { margin-bottom:-1em; } | |
.error { background: #ffc; } | |
.specific { color:#cc3300; font-weight:bold; } | |
h2 span.commands { font-size:.7em;} | |
span.commands a:link {color:#5E5694;} | |
pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; } | |
.append-bottom { margin-bottom: 10px; } | |
</style> | |
<script type="text/javascript"> | |
//<!-- | |
function getElementsByClassName(oElm, strTagName, strClassName){ | |
// Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com | |
var arrElements = (strTagName == "*" && document.all)? document.all : | |
oElm.getElementsByTagName(strTagName); | |
var arrReturnElements = new Array(); | |
strClassName = strClassName.replace(/\-/g, "\-"); | |
var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)"); | |
var oElement; | |
for(var i=0; i<arrElements.length; i++){ | |
oElement = arrElements[i]; | |
if(oRegExp.test(oElement.className)){ | |
arrReturnElements.push(oElement); | |
} | |
} | |
return (arrReturnElements) | |
} | |
function hideAll(elems) { | |
for (var e = 0; e < elems.length; e++) { | |
elems[e].style.display = 'none'; | |
} | |
} | |
window.onload = function() { | |
hideAll(getElementsByClassName(document, 'table', 'vars')); | |
hideAll(getElementsByClassName(document, 'ol', 'pre-context')); | |
hideAll(getElementsByClassName(document, 'ol', 'post-context')); | |
hideAll(getElementsByClassName(document, 'div', 'pastebin')); | |
} | |
function toggle() { | |
for (var i = 0; i < arguments.length; i++) { | |
var e = document.getElementById(arguments[i]); | |
if (e) { | |
e.style.display = e.style.display == 'none' ? 'block': 'none'; | |
} | |
} | |
return false; | |
} | |
function varToggle(link, id) { | |
toggle('v' + id); | |
var s = link.getElementsByTagName('span')[0]; | |
var uarr = String.fromCharCode(0x25b6); | |
var darr = String.fromCharCode(0x25bc); | |
s.textContent = s.textContent == uarr ? darr : uarr; | |
return false; | |
} | |
function switchPastebinFriendly(link) { | |
s1 = "Switch to copy-and-paste view"; | |
s2 = "Switch back to interactive view"; | |
link.textContent = link.textContent.trim() == s1 ? s2: s1; | |
toggle('browserTraceback', 'pastebinTraceback'); | |
return false; | |
} | |
//--> | |
</script> | |
</head> | |
<body> | |
<div id="summary"> | |
<h1>AttributeError at /api/travel-request/</h1> | |
<pre class="exception_value">'NoneType' object has no attribute 'actions'</pre> | |
<table class="meta"> | |
<tr> | |
<th>Request Method:</th> | |
<td>POST</td> | |
</tr> | |
<tr> | |
<th>Request URL:</th> | |
<td>http://localhost:8000/api/travel-request/</td> | |
</tr> | |
<tr> | |
<th>Django Version:</th> | |
<td>1.10.1</td> | |
</tr> | |
<tr> | |
<th>Exception Type:</th> | |
<td>AttributeError</td> | |
</tr> | |
<tr> | |
<th>Exception Value:</th> | |
<td><pre>'NoneType' object has no attribute 'actions'</pre></td> | |
</tr> | |
<tr> | |
<th>Exception Location:</th> | |
<td>/Users/tim/Sites/stately/server/src/stately/views.py in serialize_case, line 30</td> | |
</tr> | |
<tr> | |
<th>Python Executable:</th> | |
<td>/Users/tim/Sites/stately/server/env/bin/python3</td> | |
</tr> | |
<tr> | |
<th>Python Version:</th> | |
<td>3.5.2</td> | |
</tr> | |
<tr> | |
<th>Python Path:</th> | |
<td><pre>['/Users/tim/Sites/stately/server/src', | |
'/Users/tim/Sites/stately/server/env/lib/python35.zip', | |
'/Users/tim/Sites/stately/server/env/lib/python3.5', | |
'/Users/tim/Sites/stately/server/env/lib/python3.5/plat-darwin', | |
'/Users/tim/Sites/stately/server/env/lib/python3.5/lib-dynload', | |
'/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5', | |
'/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin', | |
'/Users/tim/Sites/stately/server/env/lib/python3.5/site-packages']</pre></td> | |
</tr> | |
<tr> | |
<th>Server time:</th> | |
<td>Wed, 28 Sep 2016 12:06:40 +0000</td> | |
</tr> | |
</table> | |
</div> | |
<div id="traceback"> | |
<h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);"> | |
Switch to copy-and-paste view</a></span> | |
</h2> | |
<div id="browserTraceback"> | |
<ul class="traceback"> | |
<li class="frame django"> | |
<code>/Users/tim/Sites/stately/server/env/lib/python3.5/site-packages/django/core/handlers/exception.py</code> in <code>inner</code> | |
<div class="context" id="c4368466504"> | |
<ol start="32" class="pre-context" id="pre4368466504"> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> This decorator is automatically applied to all middleware to ensure that</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> no middleware leaks an exception and that the next middleware in the stack</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> can rely on getting a response instead of an exception.</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> """</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> @wraps(get_response, assigned=available_attrs(get_response))</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> def inner(request):</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> try:</pre></li> | |
</ol> | |
<ol start="39" class="context-line"> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> | |
response = get_response(request)</pre> <span>...</span></li></ol> | |
<ol start='40' class="post-context" id="post4368466504"> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> except Exception as exc:</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> response = response_for_exception(request, exc)</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> return response</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre> return inner</pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre></pre></li> | |
<li onclick="toggle('pre4368466504', 'post4368466504')"><pre></pre></li> | |
</ol> | |
</div> | |
<div class="commands"> | |
<a href="#" onclick="return varToggle(this, '4368466504')"><span>▶</span> Local vars</a> | |
</div> | |
<table class="vars" id="v4368466504"> | |
<thead> | |
<tr> | |
<th>Variable</th> | |
<th>Value</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>exc</td> | |
<td class="code"><pre>AttributeError("'NoneType' object has no attribute 'actions'",)</pre></td> | |
</tr> | |
<tr> | |
<td>get_response</td> | |
<td class="code"><pre><bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x1029073c8>></pre></td> | |
</tr> | |
<tr> | |
<td>request</td> | |
<td class="code"><pre><WSGIRequest: POST '/api/travel-request/'></pre></td> | |
</tr> | |
</tbody> | |
</table> | |
</li> | |
<li class="frame django"> | |
<code>/Users/tim/Sites/stately/server/env/lib/python3.5/site-packages/django/core/handlers/base.py</code> in <code>_get_response</code> | |
<div class="context" id="c4368466632"> | |
<ol start="180" class="pre-context" id="pre4368466632"> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> break</pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre></pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> if response is None:</pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> try:</pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> except Exception as e:</pre></li> | |
</ol> | |
<ol start="187" class="context-line"> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> | |
response = self.process_exception_by_middleware(e, request)</pre> <span>...</span></li></ol> | |
<ol start='188' class="post-context" id="post4368466632"> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre></pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> # Complain if the view returned None (a common error).</pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> if response is None:</pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> if isinstance(callback, types.FunctionType): # FBV</pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> view_name = callback.__name__</pre></li> | |
<li onclick="toggle('pre4368466632', 'post4368466632')"><pre> else: # CBV</pre></li> | |
</ol> | |
</div> | |
<div class="commands"> | |
<a href="#" onclick="return varToggle(this, '4368466632')"><span>▶</span> Local vars</a> | |
</div> | |
<table class="vars" id="v4368466632"> | |
<thead> | |
<tr> | |
<th>Variable</th> | |
<th>Value</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>callback</td> | |
<td class="code"><pre><function get_workflow_or_create_case at 0x104425510></pre></td> | |
</tr> | |
<tr> | |
<td>callback_args</td> | |
<td class="code"><pre>()</pre></td> | |
</tr> | |
<tr> | |
<td>callback_kwargs</td> | |
<td class="code"><pre>{'workflow_slug': 'travel-request'}</pre></td> | |
</tr> | |
<tr> | |
<td>middleware_method</td> | |
<td class="code"><pre><bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x102999390>></pre></td> | |
</tr> | |
<tr> | |
<td>request</td> | |
<td class="code"><pre><WSGIRequest: POST '/api/travel-request/'></pre></td> | |
</tr> | |
<tr> | |
<td>resolver</td> | |
<td class="code"><pre><RegexURLResolver 'stately.urls' (None:None) ^/></pre></td> | |
</tr> | |
<tr> | |
<td>resolver_match</td> | |
<td class="code"><pre>ResolverMatch(func=stately.views.get_workflow_or_create_case, args=(), kwargs={'workflow_slug': 'travel-request'}, url_name=None, app_names=[], namespaces=[])</pre></td> | |
</tr> | |
<tr> | |
<td>response</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>self</td> | |
<td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x1029073c8></pre></td> | |
</tr> | |
<tr> | |
<td>wrapped_callback</td> | |
<td class="code"><pre><function get_workflow_or_create_case at 0x104425510></pre></td> | |
</tr> | |
</tbody> | |
</table> | |
</li> | |
<li class="frame django"> | |
<code>/Users/tim/Sites/stately/server/env/lib/python3.5/site-packages/django/core/handlers/base.py</code> in <code>_get_response</code> | |
<div class="context" id="c4368637448"> | |
<ol start="178" class="pre-context" id="pre4368637448"> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> if response:</pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> break</pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre></pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> if response is None:</pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> try:</pre></li> | |
</ol> | |
<ol start="185" class="context-line"> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> | |
response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol> | |
<ol start='186' class="post-context" id="post4368637448"> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> except Exception as e:</pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> response = self.process_exception_by_middleware(e, request)</pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre></pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> # Complain if the view returned None (a common error).</pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> if response is None:</pre></li> | |
<li onclick="toggle('pre4368637448', 'post4368637448')"><pre> if isinstance(callback, types.FunctionType): # FBV</pre></li> | |
</ol> | |
</div> | |
<div class="commands"> | |
<a href="#" onclick="return varToggle(this, '4368637448')"><span>▶</span> Local vars</a> | |
</div> | |
<table class="vars" id="v4368637448"> | |
<thead> | |
<tr> | |
<th>Variable</th> | |
<th>Value</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>callback</td> | |
<td class="code"><pre><function get_workflow_or_create_case at 0x104425510></pre></td> | |
</tr> | |
<tr> | |
<td>callback_args</td> | |
<td class="code"><pre>()</pre></td> | |
</tr> | |
<tr> | |
<td>callback_kwargs</td> | |
<td class="code"><pre>{'workflow_slug': 'travel-request'}</pre></td> | |
</tr> | |
<tr> | |
<td>middleware_method</td> | |
<td class="code"><pre><bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x102999390>></pre></td> | |
</tr> | |
<tr> | |
<td>request</td> | |
<td class="code"><pre><WSGIRequest: POST '/api/travel-request/'></pre></td> | |
</tr> | |
<tr> | |
<td>resolver</td> | |
<td class="code"><pre><RegexURLResolver 'stately.urls' (None:None) ^/></pre></td> | |
</tr> | |
<tr> | |
<td>resolver_match</td> | |
<td class="code"><pre>ResolverMatch(func=stately.views.get_workflow_or_create_case, args=(), kwargs={'workflow_slug': 'travel-request'}, url_name=None, app_names=[], namespaces=[])</pre></td> | |
</tr> | |
<tr> | |
<td>response</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>self</td> | |
<td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x1029073c8></pre></td> | |
</tr> | |
<tr> | |
<td>wrapped_callback</td> | |
<td class="code"><pre><function get_workflow_or_create_case at 0x104425510></pre></td> | |
</tr> | |
</tbody> | |
</table> | |
</li> | |
<li class="frame django"> | |
<code>/Users/tim/Sites/stately/server/env/lib/python3.5/site-packages/django/views/decorators/csrf.py</code> in <code>wrapped_view</code> | |
<div class="context" id="c4368637832"> | |
<ol start="51" class="pre-context" id="pre4368637832"> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> """</pre></li> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> Marks a view function as being exempt from the CSRF view protection.</pre></li> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> """</pre></li> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> # We could just do view_func.csrf_exempt = True, but decorators</pre></li> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> # are nicer if they don't have side-effects, so we return a new</pre></li> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> # function.</pre></li> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> def wrapped_view(*args, **kwargs):</pre></li> | |
</ol> | |
<ol start="58" class="context-line"> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> | |
return view_func(*args, **kwargs)</pre> <span>...</span></li></ol> | |
<ol start='59' class="post-context" id="post4368637832"> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> wrapped_view.csrf_exempt = True</pre></li> | |
<li onclick="toggle('pre4368637832', 'post4368637832')"><pre> return wraps(view_func, assigned=available_attrs(view_func))(wrapped_view)</pre></li> | |
</ol> | |
</div> | |
<div class="commands"> | |
<a href="#" onclick="return varToggle(this, '4368637832')"><span>▶</span> Local vars</a> | |
</div> | |
<table class="vars" id="v4368637832"> | |
<thead> | |
<tr> | |
<th>Variable</th> | |
<th>Value</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>args</td> | |
<td class="code"><pre>(<WSGIRequest: POST '/api/travel-request/'>,)</pre></td> | |
</tr> | |
<tr> | |
<td>kwargs</td> | |
<td class="code"><pre>{'workflow_slug': 'travel-request'}</pre></td> | |
</tr> | |
<tr> | |
<td>view_func</td> | |
<td class="code"><pre><function get_workflow_or_create_case at 0x104425488></pre></td> | |
</tr> | |
</tbody> | |
</table> | |
</li> | |
<li class="frame user"> | |
<code>/Users/tim/Sites/stately/server/src/stately/views.py</code> in <code>get_workflow_or_create_case</code> | |
<div class="context" id="c4367835336"> | |
<ol start="52" class="pre-context" id="pre4367835336"> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre>def get_workflow_or_create_case(request, workflow_slug):</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> """</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> GET,POST /api/:slug</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> """</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> if request.method == 'GET':</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> return get_workflow(request, workflow_slug)</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> elif request.method == 'POST':</pre></li> | |
</ol> | |
<ol start="59" class="context-line"> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> | |
return create_case(request, workflow_slug)</pre> <span>...</span></li></ol> | |
<ol start='60' class="post-context" id="post4367835336"> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre></pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre>def get_workflow(request, slug):</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> """</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> GET /api/:slug</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> """</pre></li> | |
<li onclick="toggle('pre4367835336', 'post4367835336')"><pre> workflow = get_object_or_404(Workflow, slug=slug)</pre></li> | |
</ol> | |
</div> | |
<div class="commands"> | |
<a href="#" onclick="return varToggle(this, '4367835336')"><span>▶</span> Local vars</a> | |
</div> | |
<table class="vars" id="v4367835336"> | |
<thead> | |
<tr> | |
<th>Variable</th> | |
<th>Value</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>request</td> | |
<td class="code"><pre><WSGIRequest: POST '/api/travel-request/'></pre></td> | |
</tr> | |
<tr> | |
<td>workflow_slug</td> | |
<td class="code"><pre>'travel-request'</pre></td> | |
</tr> | |
</tbody> | |
</table> | |
</li> | |
<li class="frame user"> | |
<code>/Users/tim/Sites/stately/server/src/stately/views.py</code> in <code>create_case</code> | |
<div class="context" id="c4367836616"> | |
<ol start="74" class="pre-context" id="pre4367836616"> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> workflow = get_object_or_404(Workflow, slug=workflow_slug)</pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> case = workflow.initialize_case(commit=True)</pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre></pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> data = json.loads(request.body.decode())</pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> event = case.create_initial_event(data)</pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> handle_event(event)</pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre></pre></li> | |
</ol> | |
<ol start="81" class="context-line"> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> | |
response_data = serialize_case(event.case)</pre> <span>...</span></li></ol> | |
<ol start='82' class="post-context" id="post4367836616"> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> return JsonResponse(response_data)</pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre></pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre>def get_case(request, workflow_slug, case_id):</pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> """</pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> GET /api/:workflow_slug/:case_id</pre></li> | |
<li onclick="toggle('pre4367836616', 'post4367836616')"><pre> """</pre></li> | |
</ol> | |
</div> | |
<div class="commands"> | |
<a href="#" onclick="return varToggle(this, '4367836616')"><span>▶</span> Local vars</a> | |
</div> | |
<table class="vars" id="v4367836616"> | |
<thead> | |
<tr> | |
<th>Variable</th> | |
<th>Value</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>case</td> | |
<td class="code"><pre><Case: Case object></pre></td> | |
</tr> | |
<tr> | |
<td>data</td> | |
<td class="code"><pre>{'cost': '3500', | |
'destination': 'Morocco', | |
'name': 'Tim Wisniewski', | |
'supervisor_email': 'secret.squirrel@mailinator.com'}</pre></td> | |
</tr> | |
<tr> | |
<td>event</td> | |
<td class="code"><pre><Event: Event object></pre></td> | |
</tr> | |
<tr> | |
<td>request</td> | |
<td class="code"><pre><WSGIRequest: POST '/api/travel-request/'></pre></td> | |
</tr> | |
<tr> | |
<td>workflow</td> | |
<td class="code"><pre><Workflow: travel-request></pre></td> | |
</tr> | |
<tr> | |
<td>workflow_slug</td> | |
<td class="code"><pre>'travel-request'</pre></td> | |
</tr> | |
</tbody> | |
</table> | |
</li> | |
<li class="frame user"> | |
<code>/Users/tim/Sites/stately/server/src/stately/views.py</code> in <code>serialize_case</code> | |
<div class="context" id="c4367256264"> | |
<ol start="23" class="pre-context" id="pre4367256264"> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> 'state': {</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> 'name': case.state.name,</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> 'actions': [</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> {</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> 'name': action.name,</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> 'template': try_json(action.template),</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> }</pre></li> | |
</ol> | |
<ol start="30" class="context-line"> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> | |
for action in (actor.actions.all() if case.pk else case.state.actions.all())</pre> <span>...</span></li></ol> | |
<ol start='31' class="post-context" id="post4367256264"> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> ],</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> },</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> 'events': [</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> {</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> 'actor': event.actor.email if event.actor else None,</pre></li> | |
<li onclick="toggle('pre4367256264', 'post4367256264')"><pre> 'timestamp': event.timestamp,</pre></li> | |
</ol> | |
</div> | |
<div class="commands"> | |
<a href="#" onclick="return varToggle(this, '4367256264')"><span>▶</span> Local vars</a> | |
</div> | |
<table class="vars" id="v4367256264"> | |
<thead> | |
<tr> | |
<th>Variable</th> | |
<th>Value</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>actor</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>case</td> | |
<td class="code"><pre><Case: Case object></pre></td> | |
</tr> | |
</tbody> | |
</table> | |
</li> | |
</ul> | |
</div> | |
<form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post"> | |
<div id="pastebinTraceback" class="pastebin"> | |
<input type="hidden" name="language" value="PythonConsole"> | |
<input type="hidden" name="title" | |
value="AttributeError at /api/travel-request/"> | |
<input type="hidden" name="source" value="Django Dpaste Agent"> | |
<input type="hidden" name="poster" value="Django"> | |
<textarea name="content" id="traceback_area" cols="140" rows="25"> | |
Environment: | |
Request Method: POST | |
Request URL: http://localhost:8000/api/travel-request/ | |
Django Version: 1.10.1 | |
Python Version: 3.5.2 | |
Installed Applications: | |
['django.contrib.contenttypes', 'corsheaders', 'stately'] | |
Installed Middleware: | |
['django.middleware.security.SecurityMiddleware', | |
'django.contrib.sessions.middleware.SessionMiddleware', | |
'corsheaders.middleware.CorsMiddleware', | |
'django.middleware.common.CommonMiddleware', | |
'django.middleware.csrf.CsrfViewMiddleware', | |
'django.middleware.clickjacking.XFrameOptionsMiddleware'] | |
Traceback: | |
File "/Users/tim/Sites/stately/server/env/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner | |
39. response = get_response(request) | |
File "/Users/tim/Sites/stately/server/env/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response | |
187. response = self.process_exception_by_middleware(e, request) | |
File "/Users/tim/Sites/stately/server/env/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response | |
185. response = wrapped_callback(request, *callback_args, **callback_kwargs) | |
File "/Users/tim/Sites/stately/server/env/lib/python3.5/site-packages/django/views/decorators/csrf.py" in wrapped_view | |
58. return view_func(*args, **kwargs) | |
File "/Users/tim/Sites/stately/server/src/stately/views.py" in get_workflow_or_create_case | |
59. return create_case(request, workflow_slug) | |
File "/Users/tim/Sites/stately/server/src/stately/views.py" in create_case | |
81. response_data = serialize_case(event.case) | |
File "/Users/tim/Sites/stately/server/src/stately/views.py" in serialize_case | |
30. for action in (actor.actions.all() if case.pk else case.state.actions.all()) | |
Exception Type: AttributeError at /api/travel-request/ | |
Exception Value: 'NoneType' object has no attribute 'actions' | |
</textarea> | |
<br><br> | |
<input type="submit" value="Share this traceback on a public website"> | |
</div> | |
</form> | |
</div> | |
<div id="requestinfo"> | |
<h2>Request information</h2> | |
<h3 id="get-info">GET</h3> | |
<p>No GET data</p> | |
<h3 id="post-info">POST</h3> | |
<p>No POST data</p> | |
<h3 id="files-info">FILES</h3> | |
<p>No FILES data</p> | |
<h3 id="cookie-info">COOKIES</h3> | |
<p>No cookie data</p> | |
<h3 id="meta-info">META</h3> | |
<table class="req"> | |
<thead> | |
<tr> | |
<th>Variable</th> | |
<th>Value</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>Apple_PubSub_Socket_Render</td> | |
<td class="code"><pre>'/private/tmp/com.apple.launchd.hhbMOeJJ4u/Render'</pre></td> | |
</tr> | |
<tr> | |
<td>CONTENT_LENGTH</td> | |
<td class="code"><pre>'115'</pre></td> | |
</tr> | |
<tr> | |
<td>CONTENT_TYPE</td> | |
<td class="code"><pre>'application/json'</pre></td> | |
</tr> | |
<tr> | |
<td>DISPLAY</td> | |
<td class="code"><pre>'/private/tmp/com.apple.launchd.h4DWjrTVsP/org.macosforge.xquartz:0'</pre></td> | |
</tr> | |
<tr> | |
<td>DJANGO_SETTINGS_MODULE</td> | |
<td class="code"><pre>'stately.settings'</pre></td> | |
</tr> | |
<tr> | |
<td>GATEWAY_INTERFACE</td> | |
<td class="code"><pre>'CGI/1.1'</pre></td> | |
</tr> | |
<tr> | |
<td>GEM_HOME</td> | |
<td class="code"><pre>'/Users/tim/.rvm/gems/ruby-2.3.1'</pre></td> | |
</tr> | |
<tr> | |
<td>GEM_PATH</td> | |
<td class="code"><pre>'/Users/tim/.rvm/gems/ruby-2.3.1:/Users/tim/.rvm/gems/ruby-2.3.1@global'</pre></td> | |
</tr> | |
<tr> | |
<td>HOME</td> | |
<td class="code"><pre>'/Users/tim'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_ACCEPT</td> | |
<td class="code"><pre>'application/json'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_ACCEPT_ENCODING</td> | |
<td class="code"><pre>'gzip, deflate, br'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_ACCEPT_LANGUAGE</td> | |
<td class="code"><pre>'en-US,en;q=0.8,es;q=0.6'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_CACHE_CONTROL</td> | |
<td class="code"><pre>'no-cache'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_CONNECTION</td> | |
<td class="code"><pre>'keep-alive'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_HOST</td> | |
<td class="code"><pre>'localhost:8000'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_ORIGIN</td> | |
<td class="code"><pre>'http://localhost:9966'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_PRAGMA</td> | |
<td class="code"><pre>'no-cache'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_REFERER</td> | |
<td class="code"><pre>'http://localhost:9966/travel-request'</pre></td> | |
</tr> | |
<tr> | |
<td>HTTP_USER_AGENT</td> | |
<td class="code"><pre>('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, ' | |
'like Gecko) Chrome/55.0.2853.0 Safari/537.36')</pre></td> | |
</tr> | |
<tr> | |
<td>IRBRC</td> | |
<td class="code"><pre>'/Users/tim/.rvm/rubies/ruby-2.3.1/.irbrc'</pre></td> | |
</tr> | |
<tr> | |
<td>ITERM_PROFILE</td> | |
<td class="code"><pre>'Default'</pre></td> | |
</tr> | |
<tr> | |
<td>ITERM_SESSION_ID</td> | |
<td class="code"><pre>'w0t0p2:D7283FC4-9D2E-4582-9624-6CEC2977730B'</pre></td> | |
</tr> | |
<tr> | |
<td>LANG</td> | |
<td class="code"><pre>'en_US.UTF-8'</pre></td> | |
</tr> | |
<tr> | |
<td>LC_CTYPE</td> | |
<td class="code"><pre>'en_US.UTF-8'</pre></td> | |
</tr> | |
<tr> | |
<td>LESS</td> | |
<td class="code"><pre>'-R'</pre></td> | |
</tr> | |
<tr> | |
<td>LOGNAME</td> | |
<td class="code"><pre>'tim'</pre></td> | |
</tr> | |
<tr> | |
<td>LSCOLORS</td> | |
<td class="code"><pre>'Gxfxcxdxbxegedabagacad'</pre></td> | |
</tr> | |
<tr> | |
<td>MY_RUBY_HOME</td> | |
<td class="code"><pre>'/Users/tim/.rvm/rubies/ruby-2.3.1'</pre></td> | |
</tr> | |
<tr> | |
<td>OLDPWD</td> | |
<td class="code"><pre>'/Users/tim/Sites/stately/server'</pre></td> | |
</tr> | |
<tr> | |
<td>PAGER</td> | |
<td class="code"><pre>'less'</pre></td> | |
</tr> | |
<tr> | |
<td>PATH</td> | |
<td class="code"><pre>'/Users/tim/Sites/stately/server/env/bin:/Users/tim/.rvm/gems/ruby-2.3.1/bin:/Users/tim/.rvm/gems/ruby-2.3.1@global/bin:/Users/tim/.rvm/rubies/ruby-2.3.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/tim/.rvm/bin'</pre></td> | |
</tr> | |
<tr> | |
<td>PATH_INFO</td> | |
<td class="code"><pre>'/api/travel-request/'</pre></td> | |
</tr> | |
<tr> | |
<td>PS1</td> | |
<td class="code"><pre>'(env)%{%f%b%k%}$(build_prompt) '</pre></td> | |
</tr> | |
<tr> | |
<td>PWD</td> | |
<td class="code"><pre>'/Users/tim/Sites/stately/server/src'</pre></td> | |
</tr> | |
<tr> | |
<td>QUERY_STRING</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>REMOTE_ADDR</td> | |
<td class="code"><pre>'127.0.0.1'</pre></td> | |
</tr> | |
<tr> | |
<td>REMOTE_HOST</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>REQUEST_METHOD</td> | |
<td class="code"><pre>'POST'</pre></td> | |
</tr> | |
<tr> | |
<td>RUBY_VERSION</td> | |
<td class="code"><pre>'ruby-2.3.1'</pre></td> | |
</tr> | |
<tr> | |
<td>RUN_MAIN</td> | |
<td class="code"><pre>'true'</pre></td> | |
</tr> | |
<tr> | |
<td>SCRIPT_NAME</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>SERVER_NAME</td> | |
<td class="code"><pre>'1.0.0.127.in-addr.arpa'</pre></td> | |
</tr> | |
<tr> | |
<td>SERVER_PORT</td> | |
<td class="code"><pre>'8000'</pre></td> | |
</tr> | |
<tr> | |
<td>SERVER_PROTOCOL</td> | |
<td class="code"><pre>'HTTP/1.1'</pre></td> | |
</tr> | |
<tr> | |
<td>SERVER_SOFTWARE</td> | |
<td class="code"><pre>'WSGIServer/0.2'</pre></td> | |
</tr> | |
<tr> | |
<td>SHELL</td> | |
<td class="code"><pre>'/bin/zsh'</pre></td> | |
</tr> | |
<tr> | |
<td>SHLVL</td> | |
<td class="code"><pre>'1'</pre></td> | |
</tr> | |
<tr> | |
<td>SSH_AUTH_SOCK</td> | |
<td class="code"><pre>'/private/tmp/com.apple.launchd.G3Gj31BrYY/Listeners'</pre></td> | |
</tr> | |
<tr> | |
<td>TERM</td> | |
<td class="code"><pre>'xterm-256color'</pre></td> | |
</tr> | |
<tr> | |
<td>TERM_PROGRAM</td> | |
<td class="code"><pre>'iTerm.app'</pre></td> | |
</tr> | |
<tr> | |
<td>TERM_PROGRAM_VERSION</td> | |
<td class="code"><pre>'3.0.9'</pre></td> | |
</tr> | |
<tr> | |
<td>TERM_SESSION_ID</td> | |
<td class="code"><pre>'w0t0p2:D7283FC4-9D2E-4582-9624-6CEC2977730B'</pre></td> | |
</tr> | |
<tr> | |
<td>TMPDIR</td> | |
<td class="code"><pre>'/var/folders/kz/8k9kr3md0lqg5_bcfvtmpwv80000gp/T/'</pre></td> | |
</tr> | |
<tr> | |
<td>TZ</td> | |
<td class="code"><pre>'UTC'</pre></td> | |
</tr> | |
<tr> | |
<td>USER</td> | |
<td class="code"><pre>'tim'</pre></td> | |
</tr> | |
<tr> | |
<td>VIRTUAL_ENV</td> | |
<td class="code"><pre>'/Users/tim/Sites/stately/server/env'</pre></td> | |
</tr> | |
<tr> | |
<td>XPC_FLAGS</td> | |
<td class="code"><pre>'0x0'</pre></td> | |
</tr> | |
<tr> | |
<td>XPC_SERVICE_NAME</td> | |
<td class="code"><pre>'0'</pre></td> | |
</tr> | |
<tr> | |
<td>ZSH</td> | |
<td class="code"><pre>'/Users/tim/.oh-my-zsh'</pre></td> | |
</tr> | |
<tr> | |
<td>_</td> | |
<td class="code"><pre>'/Users/tim/Sites/stately/server/env/bin/python3'</pre></td> | |
</tr> | |
<tr> | |
<td>__CF_USER_TEXT_ENCODING</td> | |
<td class="code"><pre>'0x1F6:0x0:0x0'</pre></td> | |
</tr> | |
<tr> | |
<td>_system_arch</td> | |
<td class="code"><pre>'x86_64'</pre></td> | |
</tr> | |
<tr> | |
<td>_system_name</td> | |
<td class="code"><pre>'OSX'</pre></td> | |
</tr> | |
<tr> | |
<td>_system_type</td> | |
<td class="code"><pre>'Darwin'</pre></td> | |
</tr> | |
<tr> | |
<td>_system_version</td> | |
<td class="code"><pre>'10.11'</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_alias_expanded</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_bin_flag</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_bin_path</td> | |
<td class="code"><pre>'/Users/tim/.rvm/bin'</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_docs_type</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_gemstone_package_file</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_gemstone_url</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_hook</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_niceness</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_nightly_flag</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_only_path_flag</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_path</td> | |
<td class="code"><pre>'/Users/tim/.rvm'</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_prefix</td> | |
<td class="code"><pre>'/Users/tim'</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_proxy</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_quiet_flag</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_ruby_bits</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_ruby_file</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_ruby_make</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_ruby_make_install</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_ruby_mode</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_script_name</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_sdk</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_silent_flag</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_use_flag</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_version</td> | |
<td class="code"><pre>'1.27.0 (latest)'</pre></td> | |
</tr> | |
<tr> | |
<td>rvm_wrapper_name</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>wsgi.errors</td> | |
<td class="code"><pre><_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'></pre></td> | |
</tr> | |
<tr> | |
<td>wsgi.file_wrapper</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>wsgi.input</td> | |
<td class="code"><pre><_io.BufferedReader name=7></pre></td> | |
</tr> | |
<tr> | |
<td>wsgi.multiprocess</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>wsgi.multithread</td> | |
<td class="code"><pre>True</pre></td> | |
</tr> | |
<tr> | |
<td>wsgi.run_once</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>wsgi.url_scheme</td> | |
<td class="code"><pre>'http'</pre></td> | |
</tr> | |
<tr> | |
<td>wsgi.version</td> | |
<td class="code"><pre>(1, 0)</pre></td> | |
</tr> | |
</tbody> | |
</table> | |
<h3 id="settings-info">Settings</h3> | |
<h4>Using settings module <code>stately.settings</code></h4> | |
<table class="req"> | |
<thead> | |
<tr> | |
<th>Setting</th> | |
<th>Value</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<td>ABSOLUTE_URL_OVERRIDES</td> | |
<td class="code"><pre>{}</pre></td> | |
</tr> | |
<tr> | |
<td>ADMINS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>ALLOWED_HOSTS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>APPEND_SLASH</td> | |
<td class="code"><pre>True</pre></td> | |
</tr> | |
<tr> | |
<td>AUTHENTICATION_BACKENDS</td> | |
<td class="code"><pre>['django.contrib.auth.backends.ModelBackend']</pre></td> | |
</tr> | |
<tr> | |
<td>AUTH_PASSWORD_VALIDATORS</td> | |
<td class="code"><pre>'********************'</pre></td> | |
</tr> | |
<tr> | |
<td>AUTH_USER_MODEL</td> | |
<td class="code"><pre>'auth.User'</pre></td> | |
</tr> | |
<tr> | |
<td>BASE_DIR</td> | |
<td class="code"><pre>'/Users/tim/Sites/stately/server/src'</pre></td> | |
</tr> | |
<tr> | |
<td>CACHES</td> | |
<td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td> | |
</tr> | |
<tr> | |
<td>CACHE_MIDDLEWARE_ALIAS</td> | |
<td class="code"><pre>'default'</pre></td> | |
</tr> | |
<tr> | |
<td>CACHE_MIDDLEWARE_KEY_PREFIX</td> | |
<td class="code"><pre>'********************'</pre></td> | |
</tr> | |
<tr> | |
<td>CACHE_MIDDLEWARE_SECONDS</td> | |
<td class="code"><pre>600</pre></td> | |
</tr> | |
<tr> | |
<td>CORS_ORIGIN_ALLOW_ALL</td> | |
<td class="code"><pre>True</pre></td> | |
</tr> | |
<tr> | |
<td>CSRF_COOKIE_AGE</td> | |
<td class="code"><pre>31449600</pre></td> | |
</tr> | |
<tr> | |
<td>CSRF_COOKIE_DOMAIN</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>CSRF_COOKIE_HTTPONLY</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>CSRF_COOKIE_NAME</td> | |
<td class="code"><pre>'csrftoken'</pre></td> | |
</tr> | |
<tr> | |
<td>CSRF_COOKIE_PATH</td> | |
<td class="code"><pre>'/'</pre></td> | |
</tr> | |
<tr> | |
<td>CSRF_COOKIE_SECURE</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>CSRF_FAILURE_VIEW</td> | |
<td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td> | |
</tr> | |
<tr> | |
<td>CSRF_HEADER_NAME</td> | |
<td class="code"><pre>'HTTP_X_CSRFTOKEN'</pre></td> | |
</tr> | |
<tr> | |
<td>CSRF_TRUSTED_ORIGINS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>DATABASES</td> | |
<td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False, | |
'AUTOCOMMIT': True, | |
'CONN_MAX_AGE': 0, | |
'ENGINE': 'django.db.backends.sqlite3', | |
'HOST': '', | |
'NAME': '/Users/tim/Sites/stately/server/src/db.sqlite3', | |
'OPTIONS': {}, | |
'PASSWORD': '********************', | |
'PORT': '', | |
'TEST': {'CHARSET': None, | |
'COLLATION': None, | |
'MIRROR': None, | |
'NAME': None}, | |
'TIME_ZONE': None, | |
'USER': ''}}</pre></td> | |
</tr> | |
<tr> | |
<td>DATABASE_ROUTERS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>DATA_UPLOAD_MAX_MEMORY_SIZE</td> | |
<td class="code"><pre>2621440</pre></td> | |
</tr> | |
<tr> | |
<td>DATA_UPLOAD_MAX_NUMBER_FIELDS</td> | |
<td class="code"><pre>1000</pre></td> | |
</tr> | |
<tr> | |
<td>DATETIME_FORMAT</td> | |
<td class="code"><pre>'N j, Y, P'</pre></td> | |
</tr> | |
<tr> | |
<td>DATETIME_INPUT_FORMATS</td> | |
<td class="code"><pre>['%Y-%m-%d %H:%M:%S', | |
'%Y-%m-%d %H:%M:%S.%f', | |
'%Y-%m-%d %H:%M', | |
'%Y-%m-%d', | |
'%m/%d/%Y %H:%M:%S', | |
'%m/%d/%Y %H:%M:%S.%f', | |
'%m/%d/%Y %H:%M', | |
'%m/%d/%Y', | |
'%m/%d/%y %H:%M:%S', | |
'%m/%d/%y %H:%M:%S.%f', | |
'%m/%d/%y %H:%M', | |
'%m/%d/%y']</pre></td> | |
</tr> | |
<tr> | |
<td>DATE_FORMAT</td> | |
<td class="code"><pre>'N j, Y'</pre></td> | |
</tr> | |
<tr> | |
<td>DATE_INPUT_FORMATS</td> | |
<td class="code"><pre>['%Y-%m-%d', | |
'%m/%d/%Y', | |
'%m/%d/%y', | |
'%b %d %Y', | |
'%b %d, %Y', | |
'%d %b %Y', | |
'%d %b, %Y', | |
'%B %d %Y', | |
'%B %d, %Y', | |
'%d %B %Y', | |
'%d %B, %Y']</pre></td> | |
</tr> | |
<tr> | |
<td>DEBUG</td> | |
<td class="code"><pre>True</pre></td> | |
</tr> | |
<tr> | |
<td>DEBUG_PROPAGATE_EXCEPTIONS</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>DECIMAL_SEPARATOR</td> | |
<td class="code"><pre>'.'</pre></td> | |
</tr> | |
<tr> | |
<td>DEFAULT_CHARSET</td> | |
<td class="code"><pre>'utf-8'</pre></td> | |
</tr> | |
<tr> | |
<td>DEFAULT_CONTENT_TYPE</td> | |
<td class="code"><pre>'text/html'</pre></td> | |
</tr> | |
<tr> | |
<td>DEFAULT_EXCEPTION_REPORTER_FILTER</td> | |
<td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td> | |
</tr> | |
<tr> | |
<td>DEFAULT_FILE_STORAGE</td> | |
<td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td> | |
</tr> | |
<tr> | |
<td>DEFAULT_FROM_EMAIL</td> | |
<td class="code"><pre>'webmaster@localhost'</pre></td> | |
</tr> | |
<tr> | |
<td>DEFAULT_INDEX_TABLESPACE</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>DEFAULT_TABLESPACE</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>DISALLOWED_USER_AGENTS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_BACKEND</td> | |
<td class="code"><pre>'django.core.mail.backends.console.EmailBackend'</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_HOST</td> | |
<td class="code"><pre>'localhost'</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_HOST_PASSWORD</td> | |
<td class="code"><pre>'********************'</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_HOST_USER</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_PORT</td> | |
<td class="code"><pre>25</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_SSL_CERTFILE</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_SSL_KEYFILE</td> | |
<td class="code"><pre>'********************'</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_SUBJECT_PREFIX</td> | |
<td class="code"><pre>'[Django] '</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_TIMEOUT</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_USE_SSL</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>EMAIL_USE_TLS</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>FILE_CHARSET</td> | |
<td class="code"><pre>'utf-8'</pre></td> | |
</tr> | |
<tr> | |
<td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>FILE_UPLOAD_HANDLERS</td> | |
<td class="code"><pre>['django.core.files.uploadhandler.MemoryFileUploadHandler', | |
'django.core.files.uploadhandler.TemporaryFileUploadHandler']</pre></td> | |
</tr> | |
<tr> | |
<td>FILE_UPLOAD_MAX_MEMORY_SIZE</td> | |
<td class="code"><pre>2621440</pre></td> | |
</tr> | |
<tr> | |
<td>FILE_UPLOAD_PERMISSIONS</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>FILE_UPLOAD_TEMP_DIR</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>FIRST_DAY_OF_WEEK</td> | |
<td class="code"><pre>0</pre></td> | |
</tr> | |
<tr> | |
<td>FIXTURE_DIRS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>FORCE_SCRIPT_NAME</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>FORMAT_MODULE_PATH</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>IGNORABLE_404_URLS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>INSTALLED_APPS</td> | |
<td class="code"><pre>['django.contrib.contenttypes', 'corsheaders', 'stately']</pre></td> | |
</tr> | |
<tr> | |
<td>INTERNAL_IPS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>LANGUAGES</td> | |
<td class="code"><pre>[('af', 'Afrikaans'), | |
('ar', 'Arabic'), | |
('ast', 'Asturian'), | |
('az', 'Azerbaijani'), | |
('bg', 'Bulgarian'), | |
('be', 'Belarusian'), | |
('bn', 'Bengali'), | |
('br', 'Breton'), | |
('bs', 'Bosnian'), | |
('ca', 'Catalan'), | |
('cs', 'Czech'), | |
('cy', 'Welsh'), | |
('da', 'Danish'), | |
('de', 'German'), | |
('dsb', 'Lower Sorbian'), | |
('el', 'Greek'), | |
('en', 'English'), | |
('en-au', 'Australian English'), | |
('en-gb', 'British English'), | |
('eo', 'Esperanto'), | |
('es', 'Spanish'), | |
('es-ar', 'Argentinian Spanish'), | |
('es-co', 'Colombian Spanish'), | |
('es-mx', 'Mexican Spanish'), | |
('es-ni', 'Nicaraguan Spanish'), | |
('es-ve', 'Venezuelan Spanish'), | |
('et', 'Estonian'), | |
('eu', 'Basque'), | |
('fa', 'Persian'), | |
('fi', 'Finnish'), | |
('fr', 'French'), | |
('fy', 'Frisian'), | |
('ga', 'Irish'), | |
('gd', 'Scottish Gaelic'), | |
('gl', 'Galician'), | |
('he', 'Hebrew'), | |
('hi', 'Hindi'), | |
('hr', 'Croatian'), | |
('hsb', 'Upper Sorbian'), | |
('hu', 'Hungarian'), | |
('ia', 'Interlingua'), | |
('id', 'Indonesian'), | |
('io', 'Ido'), | |
('is', 'Icelandic'), | |
('it', 'Italian'), | |
('ja', 'Japanese'), | |
('ka', 'Georgian'), | |
('kk', 'Kazakh'), | |
('km', 'Khmer'), | |
('kn', 'Kannada'), | |
('ko', 'Korean'), | |
('lb', 'Luxembourgish'), | |
('lt', 'Lithuanian'), | |
('lv', 'Latvian'), | |
('mk', 'Macedonian'), | |
('ml', 'Malayalam'), | |
('mn', 'Mongolian'), | |
('mr', 'Marathi'), | |
('my', 'Burmese'), | |
('nb', 'Norwegian Bokmål'), | |
('ne', 'Nepali'), | |
('nl', 'Dutch'), | |
('nn', 'Norwegian Nynorsk'), | |
('os', 'Ossetic'), | |
('pa', 'Punjabi'), | |
('pl', 'Polish'), | |
('pt', 'Portuguese'), | |
('pt-br', 'Brazilian Portuguese'), | |
('ro', 'Romanian'), | |
('ru', 'Russian'), | |
('sk', 'Slovak'), | |
('sl', 'Slovenian'), | |
('sq', 'Albanian'), | |
('sr', 'Serbian'), | |
('sr-latn', 'Serbian Latin'), | |
('sv', 'Swedish'), | |
('sw', 'Swahili'), | |
('ta', 'Tamil'), | |
('te', 'Telugu'), | |
('th', 'Thai'), | |
('tr', 'Turkish'), | |
('tt', 'Tatar'), | |
('udm', 'Udmurt'), | |
('uk', 'Ukrainian'), | |
('ur', 'Urdu'), | |
('vi', 'Vietnamese'), | |
('zh-hans', 'Simplified Chinese'), | |
('zh-hant', 'Traditional Chinese')]</pre></td> | |
</tr> | |
<tr> | |
<td>LANGUAGES_BIDI</td> | |
<td class="code"><pre>['he', 'ar', 'fa', 'ur']</pre></td> | |
</tr> | |
<tr> | |
<td>LANGUAGE_CODE</td> | |
<td class="code"><pre>'en-us'</pre></td> | |
</tr> | |
<tr> | |
<td>LANGUAGE_COOKIE_AGE</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>LANGUAGE_COOKIE_DOMAIN</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>LANGUAGE_COOKIE_NAME</td> | |
<td class="code"><pre>'django_language'</pre></td> | |
</tr> | |
<tr> | |
<td>LANGUAGE_COOKIE_PATH</td> | |
<td class="code"><pre>'/'</pre></td> | |
</tr> | |
<tr> | |
<td>LOCALE_PATHS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>LOGGING</td> | |
<td class="code"><pre>{}</pre></td> | |
</tr> | |
<tr> | |
<td>LOGGING_CONFIG</td> | |
<td class="code"><pre>'logging.config.dictConfig'</pre></td> | |
</tr> | |
<tr> | |
<td>LOGIN_REDIRECT_URL</td> | |
<td class="code"><pre>'/accounts/profile/'</pre></td> | |
</tr> | |
<tr> | |
<td>LOGIN_URL</td> | |
<td class="code"><pre>'/accounts/login/'</pre></td> | |
</tr> | |
<tr> | |
<td>LOGOUT_REDIRECT_URL</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>MANAGERS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>MEDIA_ROOT</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>MEDIA_URL</td> | |
<td class="code"><pre>''</pre></td> | |
</tr> | |
<tr> | |
<td>MESSAGE_STORAGE</td> | |
<td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td> | |
</tr> | |
<tr> | |
<td>MIDDLEWARE</td> | |
<td class="code"><pre>['django.middleware.security.SecurityMiddleware', | |
'django.contrib.sessions.middleware.SessionMiddleware', | |
'corsheaders.middleware.CorsMiddleware', | |
'django.middleware.common.CommonMiddleware', | |
'django.middleware.csrf.CsrfViewMiddleware', | |
'django.middleware.clickjacking.XFrameOptionsMiddleware']</pre></td> | |
</tr> | |
<tr> | |
<td>MIDDLEWARE_CLASSES</td> | |
<td class="code"><pre>['django.middleware.common.CommonMiddleware', | |
'django.middleware.csrf.CsrfViewMiddleware']</pre></td> | |
</tr> | |
<tr> | |
<td>MIGRATION_MODULES</td> | |
<td class="code"><pre>{}</pre></td> | |
</tr> | |
<tr> | |
<td>MONTH_DAY_FORMAT</td> | |
<td class="code"><pre>'F j'</pre></td> | |
</tr> | |
<tr> | |
<td>NUMBER_GROUPING</td> | |
<td class="code"><pre>0</pre></td> | |
</tr> | |
<tr> | |
<td>PASSWORD_HASHERS</td> | |
<td class="code"><pre>'********************'</pre></td> | |
</tr> | |
<tr> | |
<td>PASSWORD_RESET_TIMEOUT_DAYS</td> | |
<td class="code"><pre>'********************'</pre></td> | |
</tr> | |
<tr> | |
<td>PREPEND_WWW</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>ROOT_URLCONF</td> | |
<td class="code"><pre>'stately.urls'</pre></td> | |
</tr> | |
<tr> | |
<td>SECRET_KEY</td> | |
<td class="code"><pre>'********************'</pre></td> | |
</tr> | |
<tr> | |
<td>SECURE_BROWSER_XSS_FILTER</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>SECURE_CONTENT_TYPE_NOSNIFF</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>SECURE_HSTS_SECONDS</td> | |
<td class="code"><pre>0</pre></td> | |
</tr> | |
<tr> | |
<td>SECURE_PROXY_SSL_HEADER</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>SECURE_REDIRECT_EXEMPT</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>SECURE_SSL_HOST</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>SECURE_SSL_REDIRECT</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>SERVER_EMAIL</td> | |
<td class="code"><pre>'root@localhost'</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_CACHE_ALIAS</td> | |
<td class="code"><pre>'default'</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_COOKIE_AGE</td> | |
<td class="code"><pre>1209600</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_COOKIE_DOMAIN</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_COOKIE_HTTPONLY</td> | |
<td class="code"><pre>True</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_COOKIE_NAME</td> | |
<td class="code"><pre>'sessionid'</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_COOKIE_PATH</td> | |
<td class="code"><pre>'/'</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_COOKIE_SECURE</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_ENGINE</td> | |
<td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_FILE_PATH</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_SAVE_EVERY_REQUEST</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>SESSION_SERIALIZER</td> | |
<td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td> | |
</tr> | |
<tr> | |
<td>SETTINGS_MODULE</td> | |
<td class="code"><pre>'stately.settings'</pre></td> | |
</tr> | |
<tr> | |
<td>SHORT_DATETIME_FORMAT</td> | |
<td class="code"><pre>'m/d/Y P'</pre></td> | |
</tr> | |
<tr> | |
<td>SHORT_DATE_FORMAT</td> | |
<td class="code"><pre>'m/d/Y'</pre></td> | |
</tr> | |
<tr> | |
<td>SIGNING_BACKEND</td> | |
<td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td> | |
</tr> | |
<tr> | |
<td>SILENCED_SYSTEM_CHECKS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>STATICFILES_DIRS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>STATICFILES_FINDERS</td> | |
<td class="code"><pre>['django.contrib.staticfiles.finders.FileSystemFinder', | |
'django.contrib.staticfiles.finders.AppDirectoriesFinder']</pre></td> | |
</tr> | |
<tr> | |
<td>STATICFILES_STORAGE</td> | |
<td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td> | |
</tr> | |
<tr> | |
<td>STATIC_ROOT</td> | |
<td class="code"><pre>None</pre></td> | |
</tr> | |
<tr> | |
<td>STATIC_URL</td> | |
<td class="code"><pre>'/static/'</pre></td> | |
</tr> | |
<tr> | |
<td>TEMPLATES</td> | |
<td class="code"><pre>[{'APP_DIRS': True, | |
'BACKEND': 'django.template.backends.django.DjangoTemplates', | |
'DIRS': [], | |
'OPTIONS': {'context_processors': ['django.template.context_processors.debug', | |
'django.template.context_processors.request', | |
'django.contrib.auth.context_processors.auth', | |
'django.contrib.messages.context_processors.messages']}}]</pre></td> | |
</tr> | |
<tr> | |
<td>TEST_NON_SERIALIZED_APPS</td> | |
<td class="code"><pre>[]</pre></td> | |
</tr> | |
<tr> | |
<td>TEST_RUNNER</td> | |
<td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td> | |
</tr> | |
<tr> | |
<td>THOUSAND_SEPARATOR</td> | |
<td class="code"><pre>','</pre></td> | |
</tr> | |
<tr> | |
<td>TIME_FORMAT</td> | |
<td class="code"><pre>'P'</pre></td> | |
</tr> | |
<tr> | |
<td>TIME_INPUT_FORMATS</td> | |
<td class="code"><pre>['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']</pre></td> | |
</tr> | |
<tr> | |
<td>TIME_ZONE</td> | |
<td class="code"><pre>'UTC'</pre></td> | |
</tr> | |
<tr> | |
<td>USE_ETAGS</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>USE_I18N</td> | |
<td class="code"><pre>True</pre></td> | |
</tr> | |
<tr> | |
<td>USE_L10N</td> | |
<td class="code"><pre>True</pre></td> | |
</tr> | |
<tr> | |
<td>USE_THOUSAND_SEPARATOR</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>USE_TZ</td> | |
<td class="code"><pre>True</pre></td> | |
</tr> | |
<tr> | |
<td>USE_X_FORWARDED_HOST</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>USE_X_FORWARDED_PORT</td> | |
<td class="code"><pre>False</pre></td> | |
</tr> | |
<tr> | |
<td>WSGI_APPLICATION</td> | |
<td class="code"><pre>'stately.wsgi.application'</pre></td> | |
</tr> | |
<tr> | |
<td>X_FRAME_OPTIONS</td> | |
<td class="code"><pre>'SAMEORIGIN'</pre></td> | |
</tr> | |
<tr> | |
<td>YEAR_MONTH_FORMAT</td> | |
<td class="code"><pre>'F Y'</pre></td> | |
</tr> | |
</tbody> | |
</table> | |
</div> | |
<div id="explanation"> | |
<p> | |
You're seeing this error because you have <code>DEBUG = True</code> in your | |
Django settings file. Change that to <code>False</code>, and Django will | |
display a standard page generated by the handler for this status code. | |
</p> | |
</div> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment