View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004431 | Taler | obsolete component | public | 2016-04-16 20:03 | 2016-04-16 22:46 |
| Reporter | Christian Grothoff | Assigned To | Florian Dold | ||
| Priority | urgent | Severity | block | Reproducibility | always |
| Status | closed | Resolution | fixed | ||
| Platform | i7 | OS | Debian GNU/Linux | OS Version | squeeze |
| Product Version | 0.0 | ||||
| Target Version | 0.0 | Fixed in Version | 0.0 | ||
| Summary | 0004431: locally installed taler bank fails on withdraw | ||||
| Description | I get: NameError at /pin/question name 'urlparse' is not defined | ||||
| Tags | No tags attached. | ||||
| Attached Files | NameError at _pin_question.html (83,568 bytes)
<!DOCTYPE html>
<!-- saved from url=(0597)http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS -->
<html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="robots" content="NONE,NOARCHIVE">
<title>NameError at /pin/question</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.innerHTML = s.innerHTML == uarr ? darr : uarr;
return false;
}
function switchPastebinFriendly(link) {
s1 = "Switch to copy-and-paste view";
s2 = "Switch back to interactive view";
link.innerHTML = link.innerHTML.trim() == s1 ? s2: s1;
toggle('browserTraceback', 'pastebinTraceback');
return false;
}
//-->
</script>
</head>
<body>
<div id="summary">
<h1>NameError at /pin/question</h1>
<pre class="exception_value">name 'urlparse' is not defined</pre>
<table class="meta">
<tbody><tr>
<th>Request Method:</th>
<td>GET</td>
</tr>
<tr>
<th>Request URL:</th>
<td>http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS</td>
</tr>
<tr>
<th>Django Version:</th>
<td>1.9.5</td>
</tr>
<tr>
<th>Exception Type:</th>
<td>NameError</td>
</tr>
<tr>
<th>Exception Value:</th>
<td><pre>name 'urlparse' is not defined</pre></td>
</tr>
<tr>
<th>Exception Location:</th>
<td>/home/grothoff/lib/python3.4/site-packages/talerbank/app/captcha.py in normalize_exchange_url, line 35</td>
</tr>
<tr>
<th>Python Executable:</th>
<td>/home/grothoff/bin/uwsgi</td>
</tr>
<tr>
<th>Python Version:</th>
<td>3.4.3</td>
</tr>
<tr>
<th>Python Path:</th>
<td><pre>['.',
'',
'/usr/lib/python3.4',
'/usr/lib/python3.4/plat-i386-linux-gnu',
'/usr/lib/python3.4/lib-dynload',
'/usr/local/lib/python3.4/dist-packages',
'/usr/lib/python3/dist-packages',
'/home/grothoff/lib/python3.4/site-packages']</pre></td>
</tr>
<tr>
<th>Server time:</th>
<td>Sat, 16 Apr 2016 18:00:39 +0000</td>
</tr>
</tbody></table>
</div>
<div id="traceback">
<h2>Traceback <span class="commands"><a href="http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS#" onclick="return switchPastebinFriendly(this);">
Switch to copy-and-paste view</a></span>
</h2>
<div id="browserTraceback">
<ul class="traceback">
<li class="frame django">
<code>/home/grothoff/lib/python3.4/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
<div class="context" id="c3011898180">
<ol start="142" class="pre-context" id="pre3011898180" style="display: none;">
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> break</pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre></pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> if response is None:</pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> try:</pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> except Exception as e:</pre></li>
</ol>
<ol start="149" class="context-line">
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> response = self.process_exception_by_middleware(e, request)</pre> <span>...</span></li></ol>
<ol start="150" class="post-context" id="post3011898180" style="display: none;">
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre></pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> # Complain if the view returned None (a common error).</pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> if response is None:</pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> if isinstance(callback, types.FunctionType): # FBV</pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> view_name = callback.__name__</pre></li>
<li onclick="toggle('pre3011898180', 'post3011898180')"><pre> else: # CBV</pre></li>
</ol>
</div>
<div class="commands">
<a href="http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS#" onclick="return varToggle(this, '3011898180')"><span>▶</span> Local vars</a>
</div>
<table class="vars" id="v3011898180" style="display: none;">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>callback_kwargs</td>
<td class="code"><pre>{}</pre></td>
</tr>
<tr>
<td>resolver_match</td>
<td class="code"><pre>ResolverMatch(func=talerbank.app.captcha.pin_tan_question, args=(), kwargs={}, url_name=pin_tan, app_names=[], namespaces=[])</pre></td>
</tr>
<tr>
<td>callback_args</td>
<td class="code"><pre>()</pre></td>
</tr>
<tr>
<td>middleware_method</td>
<td class="code"><pre><bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0xb3b156ec>></pre></td>
</tr>
<tr>
<td>resolver</td>
<td class="code"><pre><RegexURLResolver 'talerbank.urls' (None:None) ^/></pre></td>
</tr>
<tr>
<td>request</td>
<td class="code"><pre><WSGIRequest: GET '/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS'></pre></td>
</tr>
<tr>
<td>response_is_rendered</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>wrapped_callback</td>
<td class="code"><pre><function pin_tan_question at 0xb3940d1c></pre></td>
</tr>
<tr>
<td>callback</td>
<td class="code"><pre><function pin_tan_question at 0xb3940d1c></pre></td>
</tr>
<tr>
<td>urlconf</td>
<td class="code"><pre>'talerbank.urls'</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 0xb4570e2c></pre></td>
</tr>
</tbody>
</table>
</li>
<li class="frame django">
<code>/home/grothoff/lib/python3.4/site-packages/django/core/handlers/base.py</code> in <code>get_response</code>
<div class="context" id="c3011898020">
<ol start="140" class="pre-context" id="pre3011898020" style="display: none;">
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> response = middleware_method(request, callback, callback_args, callback_kwargs)</pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> if response:</pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> break</pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre></pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> if response is None:</pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> try:</pre></li>
</ol>
<ol start="147" class="context-line">
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>...</span></li></ol>
<ol start="148" class="post-context" id="post3011898020" style="display: none;">
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> except Exception as e:</pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> response = self.process_exception_by_middleware(e, request)</pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre></pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> # Complain if the view returned None (a common error).</pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> if response is None:</pre></li>
<li onclick="toggle('pre3011898020', 'post3011898020')"><pre> if isinstance(callback, types.FunctionType): # FBV</pre></li>
</ol>
</div>
<div class="commands">
<a href="http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS#" onclick="return varToggle(this, '3011898020')"><span>▶</span> Local vars</a>
</div>
<table class="vars" id="v3011898020" style="display: none;">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>callback_kwargs</td>
<td class="code"><pre>{}</pre></td>
</tr>
<tr>
<td>resolver_match</td>
<td class="code"><pre>ResolverMatch(func=talerbank.app.captcha.pin_tan_question, args=(), kwargs={}, url_name=pin_tan, app_names=[], namespaces=[])</pre></td>
</tr>
<tr>
<td>callback_args</td>
<td class="code"><pre>()</pre></td>
</tr>
<tr>
<td>middleware_method</td>
<td class="code"><pre><bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0xb3b156ec>></pre></td>
</tr>
<tr>
<td>resolver</td>
<td class="code"><pre><RegexURLResolver 'talerbank.urls' (None:None) ^/></pre></td>
</tr>
<tr>
<td>request</td>
<td class="code"><pre><WSGIRequest: GET '/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS'></pre></td>
</tr>
<tr>
<td>response_is_rendered</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>wrapped_callback</td>
<td class="code"><pre><function pin_tan_question at 0xb3940d1c></pre></td>
</tr>
<tr>
<td>callback</td>
<td class="code"><pre><function pin_tan_question at 0xb3940d1c></pre></td>
</tr>
<tr>
<td>urlconf</td>
<td class="code"><pre>'talerbank.urls'</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 0xb4570e2c></pre></td>
</tr>
</tbody>
</table>
</li>
<li class="frame django">
<code>/home/grothoff/lib/python3.4/site-packages/django/views/decorators/http.py</code> in <code>inner</code>
<div class="context" id="c3011896300">
<ol start="35" class="pre-context" id="pre3011896300" style="display: none;">
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> logger.warning('Method Not Allowed (%s): %s', request.method, request.path,</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> extra={</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> 'status_code': 405,</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> 'request': request</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> }</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> )</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> return HttpResponseNotAllowed(request_method_list)</pre></li>
</ol>
<ol start="42" class="context-line">
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> return func(request, *args, **kwargs)</pre> <span>...</span></li></ol>
<ol start="43" class="post-context" id="post3011896300" style="display: none;">
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> return inner</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre> return decorator</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre></pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre>require_GET = require_http_methods(["GET"])</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre>require_GET.__doc__ = "Decorator to require that a view only accepts the GET method."</pre></li>
<li onclick="toggle('pre3011896300', 'post3011896300')"><pre></pre></li>
</ol>
</div>
<div class="commands">
<a href="http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS#" onclick="return varToggle(this, '3011896300')"><span>▶</span> Local vars</a>
</div>
<table class="vars" id="v3011896300" style="display: none;">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>request_method_list</td>
<td class="code"><pre>['GET']</pre></td>
</tr>
<tr>
<td>func</td>
<td class="code"><pre><function pin_tan_question at 0xb3940d64></pre></td>
</tr>
<tr>
<td>args</td>
<td class="code"><pre>()</pre></td>
</tr>
<tr>
<td>kwargs</td>
<td class="code"><pre>{}</pre></td>
</tr>
<tr>
<td>request</td>
<td class="code"><pre><WSGIRequest: GET '/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS'></pre></td>
</tr>
</tbody>
</table>
</li>
<li class="frame django">
<code>/home/grothoff/lib/python3.4/site-packages/django/contrib/auth/decorators.py</code> in <code>_wrapped_view</code>
<div class="context" id="c3011896020">
<ol start="16" class="pre-context" id="pre3011896020" style="display: none;">
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> that takes the user object and returns True if the user passes.</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> """</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre></pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> def decorator(view_func):</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> @wraps(view_func, assigned=available_attrs(view_func))</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> def _wrapped_view(request, *args, **kwargs):</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> if test_func(request.user):</pre></li>
</ol>
<ol start="23" class="context-line">
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> return view_func(request, *args, **kwargs)</pre> <span>...</span></li></ol>
<ol start="24" class="post-context" id="post3011896020" style="display: none;">
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> path = request.build_absolute_uri()</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> resolved_login_url = resolve_url(login_url or settings.LOGIN_URL)</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> # If the login url is the same scheme and net location then just</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> # use the path as the "next" url.</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> login_scheme, login_netloc = urlparse(resolved_login_url)[:2]</pre></li>
<li onclick="toggle('pre3011896020', 'post3011896020')"><pre> current_scheme, current_netloc = urlparse(path)[:2]</pre></li>
</ol>
</div>
<div class="commands">
<a href="http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS#" onclick="return varToggle(this, '3011896020')"><span>▶</span> Local vars</a>
</div>
<table class="vars" id="v3011896020" style="display: none;">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>login_url</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>request</td>
<td class="code"><pre><WSGIRequest: GET '/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS'></pre></td>
</tr>
<tr>
<td>redirect_field_name</td>
<td class="code"><pre>'next'</pre></td>
</tr>
<tr>
<td>view_func</td>
<td class="code"><pre><function pin_tan_question at 0xb3940c44></pre></td>
</tr>
<tr>
<td>args</td>
<td class="code"><pre>()</pre></td>
</tr>
<tr>
<td>kwargs</td>
<td class="code"><pre>{}</pre></td>
</tr>
<tr>
<td>test_func</td>
<td class="code"><pre><function login_required.<locals>.<lambda> at 0xb3940cd4></pre></td>
</tr>
</tbody>
</table>
</li>
<li class="frame user">
<code>/home/grothoff/lib/python3.4/site-packages/talerbank/app/captcha.py</code> in <code>pin_tan_question</code>
<div class="context" id="c3011897580">
<ol start="83" class="pre-context" id="pre3011897580" style="display: none;">
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre> request.session['amount'] = amount</pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre> request.session['exchange'] = request.GET['exchange']</pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre> request.session['reserve_pub'] = request.GET['reserve_pub']</pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre> return render(request, 'pin_tan.html', {'form': Pin(auto_id=False),</pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre> 'amount': amounts.floatify(amount),</pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre> 'currency': settings.TALER_CURRENCY,</pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre> 'exchange':</pre></li>
</ol>
<ol start="90" class="context-line">
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre> get_pretty_exchange_details(request.GET['exchange'])})</pre> <span>...</span></li></ol>
<ol start="91" class="post-context" id="post3011897580" style="display: none;">
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre></pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre></pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre>@require_POST</pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre>@login_required</pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre>def pin_tan_verify(request):</pre></li>
<li onclick="toggle('pre3011897580', 'post3011897580')"><pre> try:</pre></li>
</ol>
</div>
<div class="commands">
<a href="http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS#" onclick="return varToggle(this, '3011897580')"><span>▶</span> Local vars</a>
</div>
<table class="vars" id="v3011897580" style="display: none;">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>wiredetails</td>
<td class="code"><pre>{'test': {'account_number': 2,
'bank_uri': 'http://bank/',
'name': 'The exchange',
'salt': 'PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8',
'sig': 'WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R',
'type': 'test'}}</pre></td>
</tr>
<tr>
<td>param</td>
<td class="code"><pre>'wire_details'</pre></td>
</tr>
<tr>
<td>request</td>
<td class="code"><pre><WSGIRequest: GET '/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS'></pre></td>
</tr>
<tr>
<td>amount</td>
<td class="code"><pre>{'currency': 'KUDOS', 'fraction': 0, 'value': 20}</pre></td>
</tr>
</tbody>
</table>
</li>
<li class="frame user">
<code>/home/grothoff/lib/python3.4/site-packages/talerbank/app/captcha.py</code> in <code>get_pretty_exchange_details</code>
<div class="context" id="c3011898460">
<ol start="39" class="pre-context" id="pre3011898460" style="display: none;">
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre></pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre>def get_pretty_exchange_details(exchange_baseurl):</pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> """</pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> if the exchange has an account here, it returns its 'username'</pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> (= its base url) and account number, otherwise it just replies</pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> its base url</pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> """</pre></li>
</ol>
<ol start="46" class="context-line">
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> normalized_url = normalize_exchange_url(exchange_baseurl)</pre> <span>...</span></li></ol>
<ol start="47" class="post-context" id="post3011898460" style="display: none;">
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> exchange = get_bank_account_from_username(normalized_url)</pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> if exchange:</pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> return normalized_url + " (account #" + str(exchange.account_no) + ")"</pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre> return normalized_url</pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre></pre></li>
<li onclick="toggle('pre3011898460', 'post3011898460')"><pre></pre></li>
</ol>
</div>
<div class="commands">
<a href="http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS#" onclick="return varToggle(this, '3011898460')"><span>▶</span> Local vars</a>
</div>
<table class="vars" id="v3011898460" style="display: none;">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>exchange_baseurl</td>
<td class="code"><pre>'http://exchange/'</pre></td>
</tr>
</tbody>
</table>
</li>
<li class="frame user">
<code>/home/grothoff/lib/python3.4/site-packages/talerbank/app/captcha.py</code> in <code>normalize_exchange_url</code>
<div class="context" id="c3011895740">
<ol start="28" class="pre-context" id="pre3011895740" style="display: none;">
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre>from . import schemas</pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre>from . import amounts</pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre>from . import errors</pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre>from .user import get_bank_account_from_username</pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre></pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre></pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre>def normalize_exchange_url(exchange_baseurl):</pre></li>
</ol>
<ol start="35" class="context-line">
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre> exchange_username = urlparse(exchange_baseurl)</pre> <span>...</span></li></ol>
<ol start="36" class="post-context" id="post3011895740" style="display: none;">
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre> normalized_url = exchange_username.scheme + '://' + exchange_username.netloc</pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre> return normalized_url</pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre></pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre></pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre>def get_pretty_exchange_details(exchange_baseurl):</pre></li>
<li onclick="toggle('pre3011895740', 'post3011895740')"><pre> """</pre></li>
</ol>
</div>
<div class="commands">
<a href="http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS#" onclick="return varToggle(this, '3011895740')"><span>▶</span> Local vars</a>
</div>
<table class="vars" id="v3011895740" style="display: none;">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>exchange_baseurl</td>
<td class="code"><pre>'http://exchange/'</pre></td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
<div id="pastebinTraceback" class="pastebin" style="display: none;">
<input type="hidden" name="language" value="PythonConsole">
<input type="hidden" name="title" value="NameError at /pin/question">
<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: GET
Request URL: http://bank/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS
Django Version: 1.9.5
Python Version: 3.4.3
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'talerbank.app']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'talerbank.app.middleware.ExpectedExceptionsMiddleware']
Traceback:
File "/home/grothoff/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
File "/home/grothoff/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/grothoff/lib/python3.4/site-packages/django/views/decorators/http.py" in inner
42. return func(request, *args, **kwargs)
File "/home/grothoff/lib/python3.4/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
File "/home/grothoff/lib/python3.4/site-packages/talerbank/app/captcha.py" in pin_tan_question
90. get_pretty_exchange_details(request.GET['exchange'])})
File "/home/grothoff/lib/python3.4/site-packages/talerbank/app/captcha.py" in get_pretty_exchange_details
46. normalized_url = normalize_exchange_url(exchange_baseurl)
File "/home/grothoff/lib/python3.4/site-packages/talerbank/app/captcha.py" in normalize_exchange_url
35. exchange_username = urlparse(exchange_baseurl)
Exception Type: NameError at /pin/question
Exception Value: name 'urlparse' is not defined
</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>
<table class="req">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>amount_currency</td>
<td class="code"><pre>'KUDOS'</pre></td>
</tr>
<tr>
<td>amount_fraction</td>
<td class="code"><pre>'0'</pre></td>
</tr>
<tr>
<td>reserve_pub</td>
<td class="code"><pre>'5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG'</pre></td>
</tr>
<tr>
<td>exchange</td>
<td class="code"><pre>'http://exchange/'</pre></td>
</tr>
<tr>
<td>wire_details</td>
<td class="code"><pre>('{"test":{"name":"The '
'exchange","account_number":2,"bank_uri":"http://bank/","sig":"WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R","salt":"PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8","type":"test"}}')</pre></td>
</tr>
<tr>
<td>amount_value</td>
<td class="code"><pre>'20'</pre></td>
</tr>
</tbody>
</table>
<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>
<table class="req">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>sessionid</td>
<td class="code"><pre>'a77obcchhacyc8v0k5fqc77me4orzjxi'</pre></td>
</tr>
<tr>
<td>csrftoken</td>
<td class="code"><pre>'NOeEzQCqn8gdEoUtEZ8FXL6WgqVeTUDa'</pre></td>
</tr>
</tbody>
</table>
<h3 id="meta-info">META</h3>
<table class="req">
<thead>
<tr>
<th>Variable</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>wsgi.url_scheme</td>
<td class="code"><pre>'http'</pre></td>
</tr>
<tr>
<td>UWSGI_ROUTER</td>
<td class="code"><pre>'http'</pre></td>
</tr>
<tr>
<td>HTTP_USER_AGENT</td>
<td class="code"><pre>('Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) '
'Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36')</pre></td>
</tr>
<tr>
<td>HTTP_ACCEPT</td>
<td class="code"><pre>'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'</pre></td>
</tr>
<tr>
<td>wsgi.file_wrapper</td>
<td class="code"><pre>''</pre></td>
</tr>
<tr>
<td>HTTP_COOKIE</td>
<td class="code"><pre>('sessionid=a77obcchhacyc8v0k5fqc77me4orzjxi; '
'csrftoken=NOeEzQCqn8gdEoUtEZ8FXL6WgqVeTUDa')</pre></td>
</tr>
<tr>
<td>HTTP_CONNECTION</td>
<td class="code"><pre>'close'</pre></td>
</tr>
<tr>
<td>SERVER_PORT</td>
<td class="code"><pre>'8001'</pre></td>
</tr>
<tr>
<td>QUERY_STRING</td>
<td class="code"><pre>'wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS'</pre></td>
</tr>
<tr>
<td>wsgi.multithread</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>uwsgi.node</td>
<td class="code"><pre>b'firefly'</pre></td>
</tr>
<tr>
<td>PATH_INFO</td>
<td class="code"><pre>'/pin/question'</pre></td>
</tr>
<tr>
<td>SERVER_PROTOCOL</td>
<td class="code"><pre>'HTTP/1.0'</pre></td>
</tr>
<tr>
<td>REMOTE_ADDR</td>
<td class="code"><pre>'127.0.0.1'</pre></td>
</tr>
<tr>
<td>wsgi.errors</td>
<td class="code"><pre><_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'></pre></td>
</tr>
<tr>
<td>uwsgi.version</td>
<td class="code"><pre>b'2.0.12'</pre></td>
</tr>
<tr>
<td>REQUEST_METHOD</td>
<td class="code"><pre>'GET'</pre></td>
</tr>
<tr>
<td>HTTP_HOST</td>
<td class="code"><pre>'bank'</pre></td>
</tr>
<tr>
<td>REMOTE_PORT</td>
<td class="code"><pre>'29878'</pre></td>
</tr>
<tr>
<td>wsgi.run_once</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>wsgi.version</td>
<td class="code"><pre>(1, 0)</pre></td>
</tr>
<tr>
<td>SCRIPT_NAME</td>
<td class="code"><pre>''</pre></td>
</tr>
<tr>
<td>SERVER_NAME</td>
<td class="code"><pre>'firefly'</pre></td>
</tr>
<tr>
<td>wsgi.multiprocess</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>HTTP_UPGRADE_INSECURE_REQUESTS</td>
<td class="code"><pre>'1'</pre></td>
</tr>
<tr>
<td>HTTP_ACCEPT_ENCODING</td>
<td class="code"><pre>'gzip, deflate, sdch'</pre></td>
</tr>
<tr>
<td>REQUEST_URI</td>
<td class="code"><pre>'/pin/question?wire_details=%7B%22test%22%3A%7B%22name%22%3A%22The+exchange%22%2C%22account_number%22%3A2%2C%22bank_uri%22%3A%22http%3A%2F%2Fbank%2F%22%2C%22sig%22%3A%22WK5JG0H0Q4ZZ8E13WQG9MQ21AE3FDFKJS4EC32EQZG4R8A2T69FKH33X1HMRQY5806JFWP4EGDZ5QM5W4RNRV64FQ8N6A4F4QK3M20R%22%2C%22salt%22%3A%22PMP5A591ZQ77FCVS47JZ6DH1R0F8V1YKYK2HSX1T6H1MVXHVAVJTC71YY6WS054AAX917T8KQWJRX8HB4XZ5X9012S92ZD5BRQBTXT8%22%2C%22type%22%3A%22test%22%7D%7D&exchange=http%3A%2F%2Fexchange%2F&reserve_pub=5WS3792CB5G05SD5MEMJ7X6HTHQW4PHZP71FME2WPZ06P89J3GDG&amount_value=20&amount_fraction=0&amount_currency=KUDOS'</pre></td>
</tr>
<tr>
<td>HTTP_ACCEPT_LANGUAGE</td>
<td class="code"><pre>'en-US,en;q=0.8'</pre></td>
</tr>
<tr>
<td>wsgi.input</td>
<td class="code"><pre><uwsgi._Input object at 0xb3a3d460></pre></td>
</tr>
<tr>
<td>CSRF_COOKIE</td>
<td class="code"><pre>'NOeEzQCqn8gdEoUtEZ8FXL6WgqVeTUDa'</pre></td>
</tr>
</tbody>
</table>
<h3 id="settings-info">Settings</h3>
<h4>Using settings module <code>talerbank.settings</code></h4>
<table class="req">
<thead>
<tr>
<th>Setting</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td>MESSAGE_STORAGE</td>
<td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td>
</tr>
<tr>
<td>CACHES</td>
<td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td>
</tr>
<tr>
<td>DATABASE_ROUTERS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>LANGUAGE_COOKIE_PATH</td>
<td class="code"><pre>'/'</pre></td>
</tr>
<tr>
<td>CACHE_MIDDLEWARE_KEY_PREFIX</td>
<td class="code"><pre>'********************'</pre></td>
</tr>
<tr>
<td>SECURE_CONTENT_TYPE_NOSNIFF</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>STATICFILES_DIRS</td>
<td class="code"><pre>['/home/grothoff/lib/python3.4/site-packages/talerbank/app/static']</pre></td>
</tr>
<tr>
<td>DEBUG</td>
<td class="code"><pre>True</pre></td>
</tr>
<tr>
<td>SESSION_COOKIE_SECURE</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>SESSION_COOKIE_DOMAIN</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>STATICFILES_STORAGE</td>
<td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</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.postgresql_psycopg2',
'HOST': '',
'NAME': 'talerbank',
'OPTIONS': {},
'PASSWORD': '********************',
'PORT': '',
'TEST': {'CHARSET': None,
'COLLATION': None,
'MIRROR': None,
'NAME': None},
'TIME_ZONE': None,
'USER': ''}}</pre></td>
</tr>
<tr>
<td>MEDIA_URL</td>
<td class="code"><pre>''</pre></td>
</tr>
<tr>
<td>USE_THOUSAND_SEPARATOR</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>THOUSAND_SEPARATOR</td>
<td class="code"><pre>','</pre></td>
</tr>
<tr>
<td>INSTALLED_APPS</td>
<td class="code"><pre>['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'talerbank.app']</pre></td>
</tr>
<tr>
<td>DEFAULT_FILE_STORAGE</td>
<td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td>
</tr>
<tr>
<td>TEMPLATE_CONTEXT_PROCESSORS</td>
<td class="code"><pre>['django.contrib.auth.context_processors.auth',
'django.template.context_processors.debug',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages']</pre></td>
</tr>
<tr>
<td>MIDDLEWARE_CLASSES</td>
<td class="code"><pre>['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'talerbank.app.middleware.ExpectedExceptionsMiddleware']</pre></td>
</tr>
<tr>
<td>CSRF_TRUSTED_ORIGINS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>DEFAULT_CHARSET</td>
<td class="code"><pre>'utf-8'</pre></td>
</tr>
<tr>
<td>SECURE_BROWSER_XSS_FILTER</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>X_FRAME_OPTIONS</td>
<td class="code"><pre>'SAMEORIGIN'</pre></td>
</tr>
<tr>
<td>USE_X_FORWARDED_PORT</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>DECIMAL_SEPARATOR</td>
<td class="code"><pre>'.'</pre></td>
</tr>
<tr>
<td>EMAIL_USE_SSL</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>FILE_UPLOAD_PERMISSIONS</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>ROOT_URLCONF</td>
<td class="code"><pre>'talerbank.urls'</pre></td>
</tr>
<tr>
<td>SESSION_COOKIE_NAME</td>
<td class="code"><pre>'sessionid'</pre></td>
</tr>
<tr>
<td>SESSION_SERIALIZER</td>
<td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</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>FILE_CHARSET</td>
<td class="code"><pre>'utf-8'</pre></td>
</tr>
<tr>
<td>FILE_UPLOAD_MAX_MEMORY_SIZE</td>
<td class="code"><pre>2621440</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>CACHE_MIDDLEWARE_ALIAS</td>
<td class="code"><pre>'default'</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>MEDIA_ROOT</td>
<td class="code"><pre>''</pre></td>
</tr>
<tr>
<td>TIME_ZONE</td>
<td class="code"><pre>'UTC'</pre></td>
</tr>
<tr>
<td>DEFAULT_EXCEPTION_REPORTER_FILTER</td>
<td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td>
</tr>
<tr>
<td>EMAIL_BACKEND</td>
<td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td>
</tr>
<tr>
<td>LOGGING</td>
<td class="code"><pre>{}</pre></td>
</tr>
<tr>
<td>SECURE_PROXY_SSL_HEADER</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>AUTHENTICATION_BACKENDS</td>
<td class="code"><pre>['django.contrib.auth.backends.ModelBackend']</pre></td>
</tr>
<tr>
<td>SESSION_COOKIE_PATH</td>
<td class="code"><pre>'/'</pre></td>
</tr>
<tr>
<td>TEMPLATE_DEBUG</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>TEMPLATE_DIRS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>DISALLOWED_USER_AGENTS</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>TEMPLATE_STRING_IF_INVALID</td>
<td class="code"><pre>''</pre></td>
</tr>
<tr>
<td>SHORT_DATE_FORMAT</td>
<td class="code"><pre>'m/d/Y'</pre></td>
</tr>
<tr>
<td>MANAGERS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>ALLOWED_HOSTS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>SECURE_REDIRECT_EXEMPT</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>TEST_NON_SERIALIZED_APPS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>FIRST_DAY_OF_WEEK</td>
<td class="code"><pre>0</pre></td>
</tr>
<tr>
<td>PASSWORD_HASHERS</td>
<td class="code"><pre>'********************'</pre></td>
</tr>
<tr>
<td>MIGRATION_MODULES</td>
<td class="code"><pre>{}</pre></td>
</tr>
<tr>
<td>EMAIL_PORT</td>
<td class="code"><pre>25</pre></td>
</tr>
<tr>
<td>USE_ETAGS</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>LOGOUT_URL</td>
<td class="code"><pre>'/accounts/logout/'</pre></td>
</tr>
<tr>
<td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>NUMBER_GROUPING</td>
<td class="code"><pre>0</pre></td>
</tr>
<tr>
<td>BASE_DIR</td>
<td class="code"><pre>'/home/grothoff/lib/python3.4/site-packages'</pre></td>
</tr>
<tr>
<td>LOGGING_CONFIG</td>
<td class="code"><pre>'logging.config.dictConfig'</pre></td>
</tr>
<tr>
<td>DEBUG_PROPAGATE_EXCEPTIONS</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>LOGIN_REDIRECT_URL</td>
<td class="code"><pre>'/accounts/profile/'</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>CSRF_COOKIE_PATH</td>
<td class="code"><pre>'/'</pre></td>
</tr>
<tr>
<td>FIXTURE_DIRS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>LANGUAGES_BIDI</td>
<td class="code"><pre>['he', 'ar', 'fa', 'ur']</pre></td>
</tr>
<tr>
<td>TALER_PREDEFINED_ACCOUNTS</td>
<td class="code"><pre>['Tor', 'GNUnet', 'Taler', 'FSF']</pre></td>
</tr>
<tr>
<td>EMAIL_SUBJECT_PREFIX</td>
<td class="code"><pre>'[Django] '</pre></td>
</tr>
<tr>
<td>INTERNAL_IPS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>CACHE_MIDDLEWARE_SECONDS</td>
<td class="code"><pre>600</pre></td>
</tr>
<tr>
<td>LOCALE_PATHS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>EMAIL_SSL_KEYFILE</td>
<td class="code"><pre>'********************'</pre></td>
</tr>
<tr>
<td>STATIC_ROOT</td>
<td class="code"><pre>'/tmp/talerbankstatic/'</pre></td>
</tr>
<tr>
<td>USE_TZ</td>
<td class="code"><pre>True</pre></td>
</tr>
<tr>
<td>EMAIL_USE_TLS</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>SESSION_CACHE_ALIAS</td>
<td class="code"><pre>'default'</pre></td>
</tr>
<tr>
<td>EMAIL_HOST_USER</td>
<td class="code"><pre>''</pre></td>
</tr>
<tr>
<td>DEFAULT_CONTENT_TYPE</td>
<td class="code"><pre>'text/html'</pre></td>
</tr>
<tr>
<td>AUTH_PASSWORD_VALIDATORS</td>
<td class="code"><pre>'********************'</pre></td>
</tr>
<tr>
<td>STATIC_URL</td>
<td class="code"><pre>'/static/'</pre></td>
</tr>
<tr>
<td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>DEFAULT_TABLESPACE</td>
<td class="code"><pre>''</pre></td>
</tr>
<tr>
<td>CSRF_COOKIE_HTTPONLY</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>CSRF_COOKIE_DOMAIN</td>
<td class="code"><pre>None</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>PASSWORD_RESET_TIMEOUT_DAYS</td>
<td class="code"><pre>'********************'</pre></td>
</tr>
<tr>
<td>CSRF_COOKIE_NAME</td>
<td class="code"><pre>'csrftoken'</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'),
('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'),
('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 Bokmal'),
('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>SECURE_HSTS_SECONDS</td>
<td class="code"><pre>0</pre></td>
</tr>
<tr>
<td>DATETIME_FORMAT</td>
<td class="code"><pre>'N j, Y, P'</pre></td>
</tr>
<tr>
<td>DATE_FORMAT</td>
<td class="code"><pre>'N j, Y'</pre></td>
</tr>
<tr>
<td>DEFAULT_FROM_EMAIL</td>
<td class="code"><pre>'webmaster@localhost'</pre></td>
</tr>
<tr>
<td>TIME_FORMAT</td>
<td class="code"><pre>'P'</pre></td>
</tr>
<tr>
<td>SHORT_DATETIME_FORMAT</td>
<td class="code"><pre>'m/d/Y P'</pre></td>
</tr>
<tr>
<td>USE_L10N</td>
<td class="code"><pre>True</pre></td>
</tr>
<tr>
<td>AUTH_USER_MODEL</td>
<td class="code"><pre>'auth.User'</pre></td>
</tr>
<tr>
<td>PREPEND_WWW</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>CSRF_COOKIE_AGE</td>
<td class="code"><pre>31449600</pre></td>
</tr>
<tr>
<td>WSGI_APPLICATION</td>
<td class="code"><pre>'talerbank.wsgi.application'</pre></td>
</tr>
<tr>
<td>SECURE_SSL_HOST</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>TALER_EXPECTS_DONATIONS</td>
<td class="code"><pre>['Tor', 'GNUnet', 'Taler', 'FSF']</pre></td>
</tr>
<tr>
<td>SIGNING_BACKEND</td>
<td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td>
</tr>
<tr>
<td>SESSION_COOKIE_HTTPONLY</td>
<td class="code"><pre>True</pre></td>
</tr>
<tr>
<td>ALLOWED_INCLUDE_ROOTS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>TEMPLATE_LOADERS</td>
<td class="code"><pre>['django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader']</pre></td>
</tr>
<tr>
<td>YEAR_MONTH_FORMAT</td>
<td class="code"><pre>'F Y'</pre></td>
</tr>
<tr>
<td>IGNORABLE_404_URLS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>SESSION_FILE_PATH</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>LANGUAGE_CODE</td>
<td class="code"><pre>'en-us'</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>FILE_UPLOAD_TEMP_DIR</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>CSRF_COOKIE_SECURE</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>SECRET_KEY</td>
<td class="code"><pre>'********************'</pre></td>
</tr>
<tr>
<td>FORCE_SCRIPT_NAME</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>SILENCED_SYSTEM_CHECKS</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>APPEND_SLASH</td>
<td class="code"><pre>True</pre></td>
</tr>
<tr>
<td>SETTINGS_MODULE</td>
<td class="code"><pre>'talerbank.settings'</pre></td>
</tr>
<tr>
<td>USE_X_FORWARDED_HOST</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>EMAIL_HOST_PASSWORD</td>
<td class="code"><pre>'********************'</pre></td>
</tr>
<tr>
<td>CSRF_HEADER_NAME</td>
<td class="code"><pre>'HTTP_X_CSRFTOKEN'</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>LOGIN_URL</td>
<td class="code"><pre>'/accounts/login/'</pre></td>
</tr>
<tr>
<td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td>
<td class="code"><pre>False</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>LANGUAGE_COOKIE_NAME</td>
<td class="code"><pre>'django_language'</pre></td>
</tr>
<tr>
<td>ABSOLUTE_URL_OVERRIDES</td>
<td class="code"><pre>{}</pre></td>
</tr>
<tr>
<td>DEFAULT_INDEX_TABLESPACE</td>
<td class="code"><pre>''</pre></td>
</tr>
<tr>
<td>SESSION_COOKIE_AGE</td>
<td class="code"><pre>1209600</pre></td>
</tr>
<tr>
<td>USE_I18N</td>
<td class="code"><pre>True</pre></td>
</tr>
<tr>
<td>TALER_CURRENCY</td>
<td class="code"><pre>'KUDOS'</pre></td>
</tr>
<tr>
<td>CSRF_FAILURE_VIEW</td>
<td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td>
</tr>
<tr>
<td>EMAIL_HOST</td>
<td class="code"><pre>'localhost'</pre></td>
</tr>
<tr>
<td>FORMAT_MODULE_PATH</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>EMAIL_SSL_CERTFILE</td>
<td class="code"><pre>None</pre></td>
</tr>
<tr>
<td>ADMINS</td>
<td class="code"><pre>[]</pre></td>
</tr>
<tr>
<td>SESSION_SAVE_EVERY_REQUEST</td>
<td class="code"><pre>False</pre></td>
</tr>
<tr>
<td>EMAIL_TIMEOUT</td>
<td class="code"><pre>None</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> | ||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2016-04-16 20:03 | Christian Grothoff | New Issue | |
| 2016-04-16 20:03 | Christian Grothoff | Status | new => assigned |
| 2016-04-16 20:03 | Christian Grothoff | Assigned To | => Florian Dold |
| 2016-04-16 20:03 | Christian Grothoff | File Added: NameError at _pin_question.html | |
| 2016-04-16 20:04 | Christian Grothoff | Note Added: 0010495 | |
| 2016-04-16 20:53 | Florian Dold | Status | assigned => resolved |
| 2016-04-16 20:53 | Florian Dold | Resolution | open => fixed |
| 2016-04-16 22:46 | Christian Grothoff | Status | resolved => closed |
| 2016-04-16 22:46 | Christian Grothoff | Fixed in Version | => 0.0 |
| 2022-08-23 20:26 | Christian Grothoff | Category | bank (demonstrator) => py bank (demonstrator, obsolete) |
| 2023-12-03 01:23 | Christian Grothoff | Category | py bank (demonstrator, obsolete) => obsolete componet |
| 2023-12-11 20:08 | Florian Dold | Category | obsolete componet => obsolete component |