| 1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
|---|
| 2 |
<html lang="en"><head> |
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
<meta http-equiv="content-type" content="text/html; charset=utf-8"> |
|---|
| 7 |
<meta name="robots" content="NONE,NOARCHIVE"><title>AttributeError at /admin/lunchbox/restaurants/</title> |
|---|
| 8 |
|
|---|
| 9 |
<style type="text/css"> |
|---|
| 10 |
html * { padding:0; margin:0; } |
|---|
| 11 |
body * { padding:10px 20px; } |
|---|
| 12 |
body * * { padding:0; } |
|---|
| 13 |
body { font:small sans-serif; } |
|---|
| 14 |
body>div { border-bottom:1px solid #ddd; } |
|---|
| 15 |
h1 { font-weight:normal; } |
|---|
| 16 |
h2 { margin-bottom:.8em; } |
|---|
| 17 |
h2 span { font-size:80%; color:#666; font-weight:normal; } |
|---|
| 18 |
h3 { margin:1em 0 .5em 0; } |
|---|
| 19 |
h4 { margin:0 0 .5em 0; font-weight: normal; } |
|---|
| 20 |
table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; } |
|---|
| 21 |
tbody td, tbody th { vertical-align:top; padding:2px 3px; } |
|---|
| 22 |
thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; } |
|---|
| 23 |
tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; } |
|---|
| 24 |
table.vars { margin:5px 0 2px 40px; } |
|---|
| 25 |
table.vars td, table.req td { font-family:monospace; } |
|---|
| 26 |
table td.code { width:100%; } |
|---|
| 27 |
table td.code div { overflow:hidden; } |
|---|
| 28 |
table.source th { color:#666; } |
|---|
| 29 |
table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; } |
|---|
| 30 |
ul.traceback { list-style-type:none; } |
|---|
| 31 |
ul.traceback li.frame { margin-bottom:1em; } |
|---|
| 32 |
div.context { margin: 10px 0; } |
|---|
| 33 |
div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; } |
|---|
| 34 |
div.context ol li { font-family:monospace; white-space:pre; color:#666; cursor:pointer; } |
|---|
| 35 |
div.context ol.context-line li { color:black; background-color:#ccc; } |
|---|
| 36 |
div.context ol.context-line li span { float: right; } |
|---|
| 37 |
div.commands { margin-left: 40px; } |
|---|
| 38 |
div.commands a { color:black; text-decoration:none; } |
|---|
| 39 |
#summary { background: #ffc; } |
|---|
| 40 |
#summary h2 { font-weight: normal; color: #666; } |
|---|
| 41 |
#explanation { background:#eee; } |
|---|
| 42 |
#template, #template-not-exist { background:#f6f6f6; } |
|---|
| 43 |
#template-not-exist ul { margin: 0 0 0 20px; } |
|---|
| 44 |
#traceback { background:#eee; } |
|---|
| 45 |
#requestinfo { background:#f6f6f6; padding-left:120px; } |
|---|
| 46 |
#summary table { border:none; background:transparent; } |
|---|
| 47 |
#requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; } |
|---|
| 48 |
#requestinfo h3 { margin-bottom:-1em; } |
|---|
| 49 |
.error { background: #ffc; } |
|---|
| 50 |
.specific { color:#cc3300; font-weight:bold; } |
|---|
| 51 |
</style> |
|---|
| 52 |
<script type="text/javascript"> |
|---|
| 53 |
//<!-- |
|---|
| 54 |
function getElementsByClassName(oElm, strTagName, strClassName){ |
|---|
| 55 |
// Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com |
|---|
| 56 |
var arrElements = (strTagName == "*" && document.all)? document.all : |
|---|
| 57 |
oElm.getElementsByTagName(strTagName); |
|---|
| 58 |
var arrReturnElements = new Array(); |
|---|
| 59 |
strClassName = strClassName.replace(/\-/g, "\-"); |
|---|
| 60 |
var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)"); |
|---|
| 61 |
var oElement; |
|---|
| 62 |
for(var i=0; i<arrElements.length; i++){ |
|---|
| 63 |
oElement = arrElements[i]; |
|---|
| 64 |
if(oRegExp.test(oElement.className)){ |
|---|
| 65 |
arrReturnElements.push(oElement); |
|---|
| 66 |
} |
|---|
| 67 |
} |
|---|
| 68 |
return (arrReturnElements) |
|---|
| 69 |
} |
|---|
| 70 |
function hideAll(elems) { |
|---|
| 71 |
for (var e = 0; e < elems.length; e++) { |
|---|
| 72 |
elems[e].style.display = 'none'; |
|---|
| 73 |
} |
|---|
| 74 |
} |
|---|
| 75 |
window.onload = function() { |
|---|
| 76 |
hideAll(getElementsByClassName(document, 'table', 'vars')); |
|---|
| 77 |
hideAll(getElementsByClassName(document, 'ol', 'pre-context')); |
|---|
| 78 |
hideAll(getElementsByClassName(document, 'ol', 'post-context')); |
|---|
| 79 |
} |
|---|
| 80 |
function toggle() { |
|---|
| 81 |
for (var i = 0; i < arguments.length; i++) { |
|---|
| 82 |
var e = document.getElementById(arguments[i]); |
|---|
| 83 |
if (e) { |
|---|
| 84 |
e.style.display = e.style.display == 'none' ? 'block' : 'none'; |
|---|
| 85 |
} |
|---|
| 86 |
} |
|---|
| 87 |
return false; |
|---|
| 88 |
} |
|---|
| 89 |
function varToggle(link, id) { |
|---|
| 90 |
toggle('v' + id); |
|---|
| 91 |
var s = link.getElementsByTagName('span')[0]; |
|---|
| 92 |
var uarr = String.fromCharCode(0x25b6); |
|---|
| 93 |
var darr = String.fromCharCode(0x25bc); |
|---|
| 94 |
s.innerHTML = s.innerHTML == uarr ? darr : uarr; |
|---|
| 95 |
return false; |
|---|
| 96 |
} |
|---|
| 97 |
//--> |
|---|
| 98 |
</script></head><body> |
|---|
| 99 |
|
|---|
| 100 |
<div id="summary"> |
|---|
| 101 |
<h1>AttributeError at /admin/lunchbox/restaurants/</h1> |
|---|
| 102 |
<h2>'NoneType' object has no attribute 'has_output'</h2> |
|---|
| 103 |
<table class="meta"> |
|---|
| 104 |
<tbody><tr> |
|---|
| 105 |
<th>Request Method:</th> |
|---|
| 106 |
<td>GET</td> |
|---|
| 107 |
</tr> |
|---|
| 108 |
<tr> |
|---|
| 109 |
<th>Request URL:</th> |
|---|
| 110 |
<td>http://lazutkin.com/admin/lunchbox/restaurants/</td> |
|---|
| 111 |
</tr> |
|---|
| 112 |
<tr> |
|---|
| 113 |
<th>Exception Type:</th> |
|---|
| 114 |
<td>AttributeError</td> |
|---|
| 115 |
</tr> |
|---|
| 116 |
<tr> |
|---|
| 117 |
<th>Exception Value:</th> |
|---|
| 118 |
<td>'NoneType' object has no attribute 'has_output'</td> |
|---|
| 119 |
</tr> |
|---|
| 120 |
<tr> |
|---|
| 121 |
<th>Exception Location:</th> |
|---|
| 122 |
<td>/home/elazutkin/djsrc/django/contrib/admin/views/main.py in get_filters, line 75</td> |
|---|
| 123 |
</tr> |
|---|
| 124 |
</tbody></table> |
|---|
| 125 |
</div> |
|---|
| 126 |
|
|---|
| 127 |
|
|---|
| 128 |
<div id="traceback"> |
|---|
| 129 |
<h2>Traceback <span>(innermost last)</span></h2> |
|---|
| 130 |
<ul class="traceback"> |
|---|
| 131 |
|
|---|
| 132 |
<li class="frame"> |
|---|
| 133 |
<code>/home/elazutkin/djsrc/django/core/handlers/base.py</code> in <code>get_response</code> |
|---|
| 134 |
|
|---|
| 135 |
|
|---|
| 136 |
<div class="context" id="c1082018388"> |
|---|
| 137 |
|
|---|
| 138 |
<ol style="display: none;" start="66" class="pre-context" id="pre1082018388"><li onclick="toggle('pre1082018388', 'post1082018388')"> # Apply view middleware</li><li onclick="toggle('pre1082018388', 'post1082018388')"> for middleware_method in self._view_middleware:</li><li onclick="toggle('pre1082018388', 'post1082018388')"> response = middleware_method(request, callback, param_dict)</li><li onclick="toggle('pre1082018388', 'post1082018388')"> if response:</li><li onclick="toggle('pre1082018388', 'post1082018388')"> return response</li><li onclick="toggle('pre1082018388', 'post1082018388')"></li><li onclick="toggle('pre1082018388', 'post1082018388')"> try:</li></ol> |
|---|
| 139 |
|
|---|
| 140 |
<ol start="73" class="context-line"><li onclick="toggle('pre1082018388', 'post1082018388')"> response = callback(request, **param_dict) <span>...</span></li></ol> |
|---|
| 141 |
|
|---|
| 142 |
<ol style="display: none;" start="74" class="post-context" id="post1082018388"><li onclick="toggle('pre1082018388', 'post1082018388')"> except Exception, e:</li><li onclick="toggle('pre1082018388', 'post1082018388')"> # If the view raised an exception, run it through exception</li><li onclick="toggle('pre1082018388', 'post1082018388')"> # middleware, and if the exception middleware returns a</li><li onclick="toggle('pre1082018388', 'post1082018388')"> # response, use that. Otherwise, reraise the exception.</li><li onclick="toggle('pre1082018388', 'post1082018388')"> for middleware_method in self._exception_middleware:</li><li onclick="toggle('pre1082018388', 'post1082018388')"> response = middleware_method(request, e)</li></ol> |
|---|
| 143 |
|
|---|
| 144 |
</div> |
|---|
| 145 |
|
|---|
| 146 |
|
|---|
| 147 |
|
|---|
| 148 |
<div class="commands"> |
|---|
| 149 |
<a href="#" onclick="return varToggle(this, '1082018388')"><span>â¶</span> Local vars</a> |
|---|
| 150 |
</div> |
|---|
| 151 |
<table style="display: none;" class="vars" id="v1082018388"> |
|---|
| 152 |
<thead> |
|---|
| 153 |
<tr> |
|---|
| 154 |
<th>Variable</th> |
|---|
| 155 |
<th>Value</th> |
|---|
| 156 |
</tr> |
|---|
| 157 |
</thead> |
|---|
| 158 |
<tbody> |
|---|
| 159 |
|
|---|
| 160 |
<tr> |
|---|
| 161 |
<td>DEBUG</td> |
|---|
| 162 |
<td class="code"><div>True</div></td> |
|---|
| 163 |
</tr> |
|---|
| 164 |
|
|---|
| 165 |
<tr> |
|---|
| 166 |
<td>INTERNAL_IPS</td> |
|---|
| 167 |
<td class="code"><div>()</div></td> |
|---|
| 168 |
</tr> |
|---|
| 169 |
|
|---|
| 170 |
<tr> |
|---|
| 171 |
<td>ROOT_URLCONF</td> |
|---|
| 172 |
<td class="code"><div>'home.urls'</div></td> |
|---|
| 173 |
</tr> |
|---|
| 174 |
|
|---|
| 175 |
<tr> |
|---|
| 176 |
<td>callback</td> |
|---|
| 177 |
<td class="code"><div><function _checklogin at 0x407de6f4></div></td> |
|---|
| 178 |
</tr> |
|---|
| 179 |
|
|---|
| 180 |
<tr> |
|---|
| 181 |
<td>db</td> |
|---|
| 182 |
<td class="code"><div><module 'django.core.db' from '/home/elazutkin/djsrc/django/core/db/__init__.pyc'></div></td> |
|---|
| 183 |
</tr> |
|---|
| 184 |
|
|---|
| 185 |
<tr> |
|---|
| 186 |
<td>e</td> |
|---|
| 187 |
<td class="code"><div><exceptions.AttributeError instance at 0x407ea04c></div></td> |
|---|
| 188 |
</tr> |
|---|
| 189 |
|
|---|
| 190 |
<tr> |
|---|
| 191 |
<td>exceptions</td> |
|---|
| 192 |
<td class="code"><div><module 'django.core.exceptions' from '/home/elazutkin/djsrc/django/core/exceptions.pyc'></div></td> |
|---|
| 193 |
</tr> |
|---|
| 194 |
|
|---|
| 195 |
<tr> |
|---|
| 196 |
<td>mail_admins</td> |
|---|
| 197 |
<td class="code"><div><function mail_admins at 0x4076b4c4></div></td> |
|---|
| 198 |
</tr> |
|---|
| 199 |
|
|---|
| 200 |
<tr> |
|---|
| 201 |
<td>middleware_method</td> |
|---|
| 202 |
<td class="code"><div><bound |
|---|
| 203 |
method CommonMiddleware.process_request of |
|---|
| 204 |
<django.middleware.common.CommonMiddleware instance at |
|---|
| 205 |
0x4056c30c>></div></td> |
|---|
| 206 |
</tr> |
|---|
| 207 |
|
|---|
| 208 |
<tr> |
|---|
| 209 |
<td>param_dict</td> |
|---|
| 210 |
<td class="code"><div>{'module_name': 'restaurants', 'app_label': 'lunchbox'}</div></td> |
|---|
| 211 |
</tr> |
|---|
| 212 |
|
|---|
| 213 |
<tr> |
|---|
| 214 |
<td>path</td> |
|---|
| 215 |
<td class="code"><div>'/admin/lunchbox/restaurants/'</div></td> |
|---|
| 216 |
</tr> |
|---|
| 217 |
|
|---|
| 218 |
<tr> |
|---|
| 219 |
<td>request</td> |
|---|
| 220 |
<td class="code"><div><DjangoRequest |
|---|
| 221 |
GET:{}, |
|---|
| 222 |
POST:{}, |
|---|
| 223 |
COOKIES:{'__utma': |
|---|
| 224 |
'199987251.2075077473.1132192348.1132948788.1132956530.51', '__utmb': |
|---|
| 225 |
'199987251', '__utmc': '199987251', '__utmz': |
|---|
| 226 |
'199987251.1132799165.42.4.utmccn=(organic)|utmcsr=google|utmctr=http://lazutkin.com/blog/|utmcmd=organic', |
|---|
| 227 |
'hotclub': '6e6822babf637fe3c6be306e8d4ce4bc', 'mmrepeat1011': 'true', |
|---|
| 228 |
'mmsession1011': '7443543', 'mmtmpsess1011': 'true'}, |
|---|
| 229 |
META:{'DOCUMENT_ROOT': '/home/elazutkin/lazutkin.com', |
|---|
| 230 |
'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': |
|---|
| 231 |
'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', |
|---|
| 232 |
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', |
|---|
| 233 |
'HTTP_ACCEPT_ENCODING': 'gzip', 'HTTP_ACCEPT_LANGUAGE': |
|---|
| 234 |
'en-us,en;q=0.5', 'HTTP_COOKIE': |
|---|
| 235 |
'hotclub=6e6822babf637fe3c6be306e8d4ce4bc; mmsession1011=7443543; |
|---|
| 236 |
mmrepeat1011=true; |
|---|
| 237 |
__utma=199987251.2075077473.1132192348.1132948788.1132956530.51; |
|---|
| 238 |
__utmz=199987251.1132799165.42.4.utmccn=(organic)|utmcsr=google|utmctr=http://lazutkin.com/blog/|utmcmd=organic; |
|---|
| 239 |
__utmc=199987251; mmtmpsess1011=true; __utmb=199987251', 'HTTP_HOST': |
|---|
| 240 |
'lazutkin.com', 'HTTP_REFERER': 'http://lazutkin.com/admin/', |
|---|
| 241 |
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; |
|---|
| 242 |
rv:1.8) Gecko/20051111 Firefox/1.5', 'HTTP_X_FORWARDED_FOR': |
|---|
| 243 |
'24.1.30.243', 'PATH': '/bin:/usr/bin:/sbin:/usr/sbin', 'PATH_INFO': |
|---|
| 244 |
'/admin/lunchbox/restaurants/', 'PATH_TRANSLATED': |
|---|
| 245 |
'/home/elazutkin/lazutkin.com/admin/lunchbox/restaurants/', |
|---|
| 246 |
'QUERY_STRING': '', 'REDIRECT_SCRIPT_URI': |
|---|
| 247 |
'http://lazutkin.com/admin/lunchbox/restaurants/', |
|---|
| 248 |
'REDIRECT_SCRIPT_URL': '/admin/lunchbox/restaurants/', |
|---|
| 249 |
'REDIRECT_STATUS': '200', 'REDIRECT_URL': |
|---|
| 250 |
'/admin/lunchbox/restaurants/', 'REMOTE_ADDR': '64.233.173.73', |
|---|
| 251 |
'REMOTE_PORT': '46399', 'REQUEST_METHOD': 'GET', 'REQUEST_URI': |
|---|
| 252 |
'/admin/lunchbox/restaurants/', 'SCRIPT_FILENAME': |
|---|
| 253 |
'/home/elazutkin/lazutkin.com/django.fcgi', 'SCRIPT_NAME': |
|---|
| 254 |
'/django.fcgi', 'SCRIPT_URI': |
|---|
| 255 |
'http://lazutkin.com/admin/lunchbox/restaurants/', 'SCRIPT_URL': |
|---|
| 256 |
'/admin/lunchbox/restaurants/', 'SERVER_ADDR': '64.111.108.128', |
|---|
| 257 |
'SERVER_ADMIN': 'webmaster@lazutkin.com', 'SERVER_NAME': |
|---|
| 258 |
'lazutkin.com', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.1', |
|---|
| 259 |
'SERVER_SIGNATURE': '', 'SERVER_SOFTWARE': 'Apache/1.3.33 (Unix) |
|---|
| 260 |
DAV/1.0.3 mod_fastcgi/2.4.2 mod_gzip/1.3.26.1a PHP/4.3.10 |
|---|
| 261 |
mod_ssl/2.8.22 OpenSSL/0.9.7e', 'wsgi.errors': <fcgi.OutputStream |
|---|
| 262 |
object at 0x4063f52c>, 'wsgi.input': <fcgi.InputStream object at |
|---|
| 263 |
0x4063f7ec>, 'wsgi.multiprocess': True, 'wsgi.multithread': True, |
|---|
| 264 |
'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, |
|---|
| 265 |
0)}></div></td> |
|---|
| 266 |
</tr> |
|---|
| 267 |
|
|---|
| 268 |
<tr> |
|---|
| 269 |
<td>resolver</td> |
|---|
| 270 |
<td class="code"><div><django.core.urlresolvers.RegexURLResolver object at 0x4045a6cc></div></td> |
|---|
| 271 |
</tr> |
|---|
| 272 |
|
|---|
| 273 |
<tr> |
|---|
| 274 |
<td>response</td> |
|---|
| 275 |
<td class="code"><div>None</div></td> |
|---|
| 276 |
</tr> |
|---|
| 277 |
|
|---|
| 278 |
<tr> |
|---|
| 279 |
<td>self</td> |
|---|
| 280 |
<td class="code"><div><django.core.handlers.wsgi.WSGIHandler instance at 0x40247cac></div></td> |
|---|
| 281 |
</tr> |
|---|
| 282 |
|
|---|
| 283 |
<tr> |
|---|
| 284 |
<td>urlresolvers</td> |
|---|
| 285 |
<td class="code"><div><module 'django.core.urlresolvers' from '/home/elazutkin/djsrc/django/core/urlresolvers.pyc'></div></td> |
|---|
| 286 |
</tr> |
|---|
| 287 |
|
|---|
| 288 |
</tbody> |
|---|
| 289 |
</table> |
|---|
| 290 |
|
|---|
| 291 |
</li> |
|---|
| 292 |
|
|---|
| 293 |
<li class="frame"> |
|---|
| 294 |
<code>/home/elazutkin/djsrc/django/contrib/admin/views/decorators.py</code> in <code>_checklogin</code> |
|---|
| 295 |
|
|---|
| 296 |
|
|---|
| 297 |
<div class="context" id="c1082018428"> |
|---|
| 298 |
|
|---|
| 299 |
<ol style="display: none;" start="41" class="pre-context" id="pre1082018428"><li onclick="toggle('pre1082018428', 'post1082018428')"> """</li><li onclick="toggle('pre1082018428', 'post1082018428')"> Decorator for views that checks that the user is logged in and is a staff</li><li onclick="toggle('pre1082018428', 'post1082018428')"> member, displaying the login page if necessary.</li><li onclick="toggle('pre1082018428', 'post1082018428')"> """</li><li onclick="toggle('pre1082018428', 'post1082018428')"> def _checklogin(request, *args, **kwargs):</li><li onclick="toggle('pre1082018428', 'post1082018428')"> if not request.user.is_anonymous() and request.user.is_staff:</li><li onclick="toggle('pre1082018428', 'post1082018428')"> # The user is valid. Continue to the admin page.</li></ol> |
|---|
| 300 |
|
|---|
| 301 |
<ol start="48" class="context-line"><li onclick="toggle('pre1082018428', 'post1082018428')"> return view_func(request, *args, **kwargs) <span>...</span></li></ol> |
|---|
| 302 |
|
|---|
| 303 |
<ol style="display: none;" start="49" class="post-context" id="post1082018428"><li onclick="toggle('pre1082018428', 'post1082018428')"></li><li onclick="toggle('pre1082018428', 'post1082018428')"> |
|---|
| 304 |
assert hasattr(request, 'session'), "The Django admin requires session |
|---|
| 305 |
middleware to be installed. Edit your MIDDLEWARE_CLASSES setting to |
|---|
| 306 |
insert 'django.middleware.sessions.SessionMiddleware'."</li><li onclick="toggle('pre1082018428', 'post1082018428')"></li><li onclick="toggle('pre1082018428', 'post1082018428')"> # If this isn't already the login page, display it.</li><li onclick="toggle('pre1082018428', 'post1082018428')"> if not request.POST.has_key(LOGIN_FORM_KEY):</li><li onclick="toggle('pre1082018428', 'post1082018428')"> if request.POST:</li></ol> |
|---|
| 307 |
|
|---|
| 308 |
</div> |
|---|
| 309 |
|
|---|
| 310 |
|
|---|
| 311 |
|
|---|
| 312 |
<div class="commands"> |
|---|
| 313 |
<a href="#" onclick="return varToggle(this, '1082018428')"><span>â¶</span> Local vars</a> |
|---|
| 314 |
</div> |
|---|
| 315 |
<table style="display: none;" class="vars" id="v1082018428"> |
|---|
| 316 |
<thead> |
|---|
| 317 |
<tr> |
|---|
| 318 |
<th>Variable</th> |
|---|
| 319 |
<th>Value</th> |
|---|
| 320 |
</tr> |
|---|
| 321 |
</thead> |
|---|
| 322 |
<tbody> |
|---|
| 323 |
|
|---|
| 324 |
<tr> |
|---|
| 325 |
<td>args</td> |
|---|
| 326 |
<td class="code"><div>()</div></td> |
|---|
| 327 |
</tr> |
|---|
| 328 |
|
|---|
| 329 |
<tr> |
|---|
| 330 |
<td>kwargs</td> |
|---|
| 331 |
<td class="code"><div>{'module_name': 'restaurants', 'app_label': 'lunchbox'}</div></td> |
|---|
| 332 |
</tr> |
|---|
| 333 |
|
|---|
| 334 |
<tr> |
|---|
| 335 |
<td>request</td> |
|---|
| 336 |
<td class="code"><div><DjangoRequest |
|---|
| 337 |
GET:{}, |
|---|
| 338 |
POST:{}, |
|---|
| 339 |
COOKIES:{'__utma': |
|---|
| 340 |
'199987251.2075077473.1132192348.1132948788.1132956530.51', '__utmb': |
|---|
| 341 |
'199987251', '__utmc': '199987251', '__utmz': |
|---|
| 342 |
'199987251.1132799165.42.4.utmccn=(organic)|utmcsr=google|utmctr=http://lazutkin.com/blog/|utmcmd=organic', |
|---|
| 343 |
'hotclub': '6e6822babf637fe3c6be306e8d4ce4bc', 'mmrepeat1011': 'true', |
|---|
| 344 |
'mmsession1011': '7443543', 'mmtmpsess1011': 'true'}, |
|---|
| 345 |
META:{'DOCUMENT_ROOT': '/home/elazutkin/lazutkin.com', |
|---|
| 346 |
'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': |
|---|
| 347 |
'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', |
|---|
| 348 |
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', |
|---|
| 349 |
'HTTP_ACCEPT_ENCODING': 'gzip', 'HTTP_ACCEPT_LANGUAGE': |
|---|
| 350 |
'en-us,en;q=0.5', 'HTTP_COOKIE': |
|---|
| 351 |
'hotclub=6e6822babf637fe3c6be306e8d4ce4bc; mmsession1011=7443543; |
|---|
| 352 |
mmrepeat1011=true; |
|---|
| 353 |
__utma=199987251.2075077473.1132192348.1132948788.1132956530.51; |
|---|
| 354 |
__utmz=199987251.1132799165.42.4.utmccn=(organic)|utmcsr=google|utmctr=http://lazutkin.com/blog/|utmcmd=organic; |
|---|
| 355 |
__utmc=199987251; mmtmpsess1011=true; __utmb=199987251', 'HTTP_HOST': |
|---|
| 356 |
'lazutkin.com', 'HTTP_REFERER': 'http://lazutkin.com/admin/', |
|---|
| 357 |
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; |
|---|
| 358 |
rv:1.8) Gecko/20051111 Firefox/1.5', 'HTTP_X_FORWARDED_FOR': |
|---|
| 359 |
'24.1.30.243', 'PATH': '/bin:/usr/bin:/sbin:/usr/sbin', 'PATH_INFO': |
|---|
| 360 |
'/admin/lunchbox/restaurants/', 'PATH_TRANSLATED': |
|---|
| 361 |
'/home/elazutkin/lazutkin.com/admin/lunchbox/restaurants/', |
|---|
| 362 |
'QUERY_STRING': '', 'REDIRECT_SCRIPT_URI': |
|---|
| 363 |
'http://lazutkin.com/admin/lunchbox/restaurants/', |
|---|
| 364 |
'REDIRECT_SCRIPT_URL': '/admin/lunchbox/restaurants/', |
|---|
| 365 |
'REDIRECT_STATUS': '200', 'REDIRECT_URL': |
|---|
| 366 |
'/admin/lunchbox/restaurants/', 'REMOTE_ADDR': '64.233.173.73', |
|---|
| 367 |
'REMOTE_PORT': '46399', 'REQUEST_METHOD': 'GET', 'REQUEST_URI': |
|---|
| 368 |
'/admin/lunchbox/restaurants/', 'SCRIPT_FILENAME': |
|---|
| 369 |
'/home/elazutkin/lazutkin.com/django.fcgi', 'SCRIPT_NAME': |
|---|
| 370 |
'/django.fcgi', 'SCRIPT_URI': |
|---|
| 371 |
'http://lazutkin.com/admin/lunchbox/restaurants/', 'SCRIPT_URL': |
|---|
| 372 |
'/admin/lunchbox/restaurants/', 'SERVER_ADDR': '64.111.108.128', |
|---|
| 373 |
'SERVER_ADMIN': 'webmaster@lazutkin.com', 'SERVER_NAME': |
|---|
| 374 |
'lazutkin.com', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.1', |
|---|
| 375 |
'SERVER_SIGNATURE': '', 'SERVER_SOFTWARE': 'Apache/1.3.33 (Unix) |
|---|
| 376 |
DAV/1.0.3 mod_fastcgi/2.4.2 mod_gzip/1.3.26.1a PHP/4.3.10 |
|---|
| 377 |
mod_ssl/2.8.22 OpenSSL/0.9.7e', 'wsgi.errors': <fcgi.OutputStream |
|---|
| 378 |
object at 0x4063f52c>, 'wsgi.input': <fcgi.InputStream object at |
|---|
| 379 |
0x4063f7ec>, 'wsgi.multiprocess': True, 'wsgi.multithread': True, |
|---|
| 380 |
'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, |
|---|
| 381 |
0)}></div></td> |
|---|
| 382 |
</tr> |
|---|
| 383 |
|
|---|
| 384 |
<tr> |
|---|
| 385 |
<td>view_func</td> |
|---|
| 386 |
<td class="code"><div><function change_list at 0x407de4c4></div></td> |
|---|
| 387 |
</tr> |
|---|
| 388 |
|
|---|
| 389 |
</tbody> |
|---|
| 390 |
</table> |
|---|
| 391 |
|
|---|
| 392 |
</li> |
|---|
| 393 |
|
|---|
| 394 |
<li class="frame"> |
|---|
| 395 |
<code>/home/elazutkin/djsrc/django/contrib/admin/views/main.py</code> in <code>change_list</code> |
|---|
| 396 |
|
|---|
| 397 |
|
|---|
| 398 |
<div class="context" id="c1082018348"> |
|---|
| 399 |
|
|---|
| 400 |
<ol style="display: none;" start="227" class="pre-context" id="pre1082018348"><li onclick="toggle('pre1082018348', 'post1082018348')"> if opts.one_to_one_field:</li><li onclick="toggle('pre1082018348', 'post1082018348')"> lookup_params.update(opts.one_to_one_field.rel.limit_choices_to)</li><li onclick="toggle('pre1082018348', 'post1082018348')"> self.lookup_params = lookup_params</li><li onclick="toggle('pre1082018348', 'post1082018348')"></li><li onclick="toggle('pre1082018348', 'post1082018348')"></li><li onclick="toggle('pre1082018348', 'post1082018348')">def change_list(request, app_label, module_name):</li><li onclick="toggle('pre1082018348', 'post1082018348')"> try:</li></ol> |
|---|
| 401 |
|
|---|
| 402 |
<ol start="234" class="context-line"><li onclick="toggle('pre1082018348', 'post1082018348')"> cl = ChangeList(request, app_label, module_name) <span>...</span></li></ol> |
|---|
| 403 |
|
|---|
| 404 |
<ol style="display: none;" start="235" class="post-context" id="post1082018348"><li onclick="toggle('pre1082018348', 'post1082018348')"> except IncorrectLookupParameters:</li><li onclick="toggle('pre1082018348', 'post1082018348')"> return HttpResponseRedirect(request.path)</li><li onclick="toggle('pre1082018348', 'post1082018348')"></li><li onclick="toggle('pre1082018348', 'post1082018348')"> c = Context(request, {</li><li onclick="toggle('pre1082018348', 'post1082018348')"> 'title': cl.title,</li><li onclick="toggle('pre1082018348', 'post1082018348')"> 'is_popup': cl.is_popup,</li></ol> |
|---|
| 405 |
|
|---|
| 406 |
</div> |
|---|
| 407 |
|
|---|
| 408 |
|
|---|
| 409 |
|
|---|
| 410 |
<div class="commands"> |
|---|
| 411 |
<a href="#" onclick="return varToggle(this, '1082018348')"><span>â¶</span> Local vars</a> |
|---|
| 412 |
</div> |
|---|
| 413 |
<table style="display: none;" class="vars" id="v1082018348"> |
|---|
| 414 |
<thead> |
|---|
| 415 |
<tr> |
|---|
| 416 |
<th>Variable</th> |
|---|
| 417 |
<th>Value</th> |
|---|
| 418 |
</tr> |
|---|
| 419 |
</thead> |
|---|
| 420 |
<tbody> |
|---|
| 421 |
|
|---|
| 422 |
<tr> |
|---|
| 423 |
<td>app_label</td> |
|---|
| 424 |
<td class="code"><div>'lunchbox'</div></td> |
|---|
| 425 |
</tr> |
|---|
| 426 |
|
|---|
| 427 |
<tr> |
|---|
| 428 |
<td>module_name</td> |
|---|
| 429 |
<td class="code"><div>'restaurants'</div></td> |
|---|
| 430 |
</tr> |
|---|
| 431 |
|
|---|
| 432 |
<tr> |
|---|
| 433 |
<td>request</td> |
|---|
| 434 |
<td class="code"><div><DjangoRequest |
|---|
| 435 |
GET:{}, |
|---|
| 436 |
POST:{}, |
|---|
| 437 |
COOKIES:{'__utma': |
|---|
| 438 |
'199987251.2075077473.1132192348.1132948788.1132956530.51', '__utmb': |
|---|
| 439 |
'199987251', '__utmc': '199987251', '__utmz': |
|---|
| 440 |
'199987251.1132799165.42.4.utmccn=(organic)|utmcsr=google|utmctr=http://lazutkin.com/blog/|utmcmd=organic', |
|---|
| 441 |
'hotclub': '6e6822babf637fe3c6be306e8d4ce4bc', 'mmrepeat1011': 'true', |
|---|
| 442 |
'mmsession1011': '7443543', 'mmtmpsess1011': 'true'}, |
|---|
| 443 |
META:{'DOCUMENT_ROOT': '/home/elazutkin/lazutkin.com', |
|---|
| 444 |
'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': |
|---|
| 445 |
'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', |
|---|
| 446 |
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', |
|---|
| 447 |
'HTTP_ACCEPT_ENCODING': 'gzip', 'HTTP_ACCEPT_LANGUAGE': |
|---|
| 448 |
'en-us,en;q=0.5', 'HTTP_COOKIE': |
|---|
| 449 |
'hotclub=6e6822babf637fe3c6be306e8d4ce4bc; mmsession1011=7443543; |
|---|
| 450 |
mmrepeat1011=true; |
|---|
| 451 |
__utma=199987251.2075077473.1132192348.1132948788.1132956530.51; |
|---|
| 452 |
__utmz=199987251.1132799165.42.4.utmccn=(organic)|utmcsr=google|utmctr=http://lazutkin.com/blog/|utmcmd=organic; |
|---|
| 453 |
__utmc=199987251; mmtmpsess1011=true; __utmb=199987251', 'HTTP_HOST': |
|---|
| 454 |
'lazutkin.com', 'HTTP_REFERER': 'http://lazutkin.com/admin/', |
|---|
| 455 |
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; |
|---|
| 456 |
rv:1.8) Gecko/20051111 Firefox/1.5', 'HTTP_X_FORWARDED_FOR': |
|---|
| 457 |
'24.1.30.243', 'PATH': '/bin:/usr/bin:/sbin:/usr/sbin', 'PATH_INFO': |
|---|
| 458 |
'/admin/lunchbox/restaurants/', 'PATH_TRANSLATED': |
|---|
| 459 |
'/home/elazutkin/lazutkin.com/admin/lunchbox/restaurants/', |
|---|
| 460 |
'QUERY_STRING': '', 'REDIRECT_SCRIPT_URI': |
|---|
| 461 |
'http://lazutkin.com/admin/lunchbox/restaurants/', |
|---|
| 462 |
'REDIRECT_SCRIPT_URL': '/admin/lunchbox/restaurants/', |
|---|
| 463 |
'REDIRECT_STATUS': '200', 'REDIRECT_URL': |
|---|
| 464 |
'/admin/lunchbox/restaurants/', 'REMOTE_ADDR': '64.233.173.73', |
|---|
| 465 |
'REMOTE_PORT': '46399', 'REQUEST_METHOD': 'GET', 'REQUEST_URI': |
|---|
| 466 |
'/admin/lunchbox/restaurants/', 'SCRIPT_FILENAME': |
|---|
| 467 |
'/home/elazutkin/lazutkin.com/django.fcgi', 'SCRIPT_NAME': |
|---|
| 468 |
'/django.fcgi', 'SCRIPT_URI': |
|---|
| 469 |
'http://lazutkin.com/admin/lunchbox/restaurants/', 'SCRIPT_URL': |
|---|
| 470 |
'/admin/lunchbox/restaurants/', 'SERVER_ADDR': '64.111.108.128', |
|---|
| 471 |
'SERVER_ADMIN': 'webmaster@lazutkin.com', 'SERVER_NAME': |
|---|
| 472 |
'lazutkin.com', 'SERVER_PORT': '80', 'SERVER_PROTOCOL': 'HTTP/1.1', |
|---|
| 473 |
'SERVER_SIGNATURE': '', 'SERVER_SOFTWARE': 'Apache/1.3.33 (Unix) |
|---|
| 474 |
DAV/1.0.3 mod_fastcgi/2.4.2 mod_gzip/1.3.26.1a PHP/4.3.10 |
|---|
| 475 |
mod_ssl/2.8.22 OpenSSL/0.9.7e', 'wsgi.errors': <fcgi.OutputStream |
|---|
| 476 |
object at 0x4063f52c>, 'wsgi.input': <fcgi.InputStream object at |
|---|
| 477 |
0x4063f7ec>, 'wsgi.multiprocess': True, 'wsgi.multithread': True, |
|---|
| 478 |
'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1, |
|---|
| 479 |
0)}></div></td> |
|---|
| 480 |
</tr> |
|---|
| 481 |
|
|---|
| 482 |
</tbody> |
|---|
| 483 |
</table> |
|---|
| 484 |
|
|---|
| 485 |
</li> |
|---|
| 486 |
|
|---|
| 487 |
<li class="frame"> |
|---|
| 488 |
<code>/home/elazutkin/djsrc/django/contrib/admin/views/main.py</code> in <code>__init__</code> |
|---|
| 489 |
|
|---|
| 490 |
|
|---|
| 491 |
<div class="context" id="c1081577100"> |
|---|
| 492 |
|
|---|
| 493 |
<ol style="display: none;" start="58" class="pre-context" id="pre1081577100"><li onclick="toggle('pre1081577100', 'post1081577100')"> self.get_ordering()</li><li onclick="toggle('pre1081577100', 'post1081577100')"> self.query = request.GET.get(SEARCH_VAR,'')</li><li onclick="toggle('pre1081577100', 'post1081577100')"> self.get_lookup_params()</li><li onclick="toggle('pre1081577100', 'post1081577100')"> self.get_results(request)</li><li onclick="toggle('pre1081577100', 'post1081577100')"> self.title = (self.is_popup</li><li onclick="toggle('pre1081577100', 'post1081577100')"> and _('Select %s') % self.opts.verbose_name</li><li onclick="toggle('pre1081577100', 'post1081577100')"> or _('Select %s to change') % self.opts.verbose_name)</li></ol> |
|---|
| 494 |
|
|---|
| 495 |
<ol start="65" class="context-line"><li onclick="toggle('pre1081577100', 'post1081577100')"> self.get_filters(request) <span>...</span></li></ol> |
|---|
| 496 |
|
|---|
| 497 |
<ol style="display: none;" start="66" class="post-context" id="post1081577100"><li onclick="toggle('pre1081577100', 'post1081577100')"> self.pk_attname = self.lookup_opts.pk.attname</li><li onclick="toggle('pre1081577100', 'post1081577100')"></li><li onclick="toggle('pre1081577100', 'post1081577100')"> def get_filters(self, request):</li><li onclick="toggle('pre1081577100', 'post1081577100')"> self.filter_specs = []</li><li onclick="toggle('pre1081577100', 'post1081577100')"> if self.lookup_opts.admin.list_filter and not self.opts.one_to_one_field:</li><li onclick="toggle('pre1081577100', 'post1081577100')"> filter_fields = [self.lookup_opts.get_field(field_name) \</li></ol> |
|---|
| 498 |
|
|---|
| 499 |
</div> |
|---|
| 500 |
|
|---|
| 501 |
|
|---|
| 502 |
|
|---|
| 503 |
<div class="commands"> |
|---|
| 504 |
<a href="#" onclick="return varToggle(this, '1081577100')"><span>â¶</span> Local vars</a> |
|---|
| 505 |
</div> |
|---|
| 506 |
<table style="display: none;" class="vars" id="v1081577100"> |
|---|
| 507 |
<thead> |
|---|
| 508 |
<tr> |
|---|
| 509 |
<th>Variable</th> |
|---|
| 510 |
<th>Value</th> |
|---|
| 511 |
</tr> |
|---|
| 512 |
</thead> |
|---|
| 513 |
<tbody> |
|---|
| 514 |
|
|---|
| 515 |
<tr> |
|---|
| 516 |
<td>app_label</td> |
|---|
| 517 |
<td class="code"><div>'lunchbox'</div></td> |
|---|
| 518 |
</tr> |
|---|
| 519 |
|
|---|
| 520 |
<tr> |
|---|
| 521 |
<td>module_name</td> |
|---|
| 522 |
<td class="code"><div>'restaurants'</div></td> |
|---|
| 523 |
</tr> |
|---|
| 524 |
|
|---|
| 525 |
<tr> |
|---|
| 526 |
<td>request</td> |
|---|
| 527 |
<td class="code"><div><DjangoRequest |
|---|
| 528 |
GET:{}, |
|---|
| 529 |
POST:{}, |
|---|
| 530 |
COOKIES:{'__utma': |
|---|
| 531 |
'199987251.2075077473.1132192348.1132948788.1132956530.51', '__utmb': |
|---|
| 532 |
'199987251', '__utmc': '199987251', '__utmz': |
|---|
| 533 |
'199987251.1132799165.42.4.utmccn=(organic)|utmcsr=google|utmctr=http://lazutkin.com/blog/|utmcmd=organic', |
|---|
| 534 |
'hotclub': '6e6822babf637fe3c6be306e8d4ce4bc', 'mmrepeat1011': 'true', |
|---|
| 535 |
'mmsession1011': '7443543', 'mmtmpsess1011': 'true'}, |
|---|
| 536 |
META:{'DOCUMENT_ROOT': '/home/elazutkin/lazutkin.com', |
|---|
| 537 |
'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': |
|---|
| 538 |
'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', |
|---|
| 539 |
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', |
|---|
| 540 |
'HTTP_ACCEPT_ENCODING': 'gzip', 'HTTP_ACCEPT_LANGUAGE': |
|---|
| 541 |
'en-us,en;q=0.5', 'HTTP_COOKIE': |
|---|
| 542 |
'hotclub=6e6822babf637fe3c6be306e8d4ce4bc; mmsession1011=7443543; |
|---|
| 543 |
mmrepeat1011=true; |
|---|
| 544 |
__utma=199987251.2075077473.1132192348.1132948788.1132956530.51; |
|---|
| 545 |
__utmz=199987251.1132799165.42.4.utmccn=(organic)|utmcsr=google|utmctr=http://lazutkin.com/blog/|utmcmd=organic; |
|---|
| 546 |
__utmc=199987251; mmtmpsess1011=true; __utmb=199987251', 'HTTP_HOST': |
|---|
| 547 |
'lazutkin.com', 'HTTP_REFERER': 'http://lazutkin.com/admin/', |
|---|
| 548 |
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; |
|---|
| 549 |
rv:1.8) Gecko/20051111 Firefox/1.5', 'HTTP_X_FORWARDED_FOR': |
|---|
| 550 |
'24.1.30.243', 'PATH': '/bin:/usr/bin:/sbin:/usr/sbin', 'PATH_INFO': |
|---|
| 551 |
'/admin/lunchbox/restaurants/', 'PATH_TRANSLATED': |
|---|
| 552 |
'/home/elazutkin/lazutkin.com/admin/lunchbox/restaurants/', |
|---|
| 553 |
'QUERY_STRING': '', 'REDIRECT_SCRIPT_URI': |
|---|
| 554 |
'http://lazutkin.com/admin/lunchbox/restaurants/', |
|---|
| 555 |
'REDIRECT_SCRIPT_URL': '/admin/lunchbox/restau |
|---|