Django

Code

Ticket #913: AttributeError at _admin_lunchbox_restaurants_.htm

File AttributeError at _admin_lunchbox_restaurants_.htm, 53.5 kB (added by eugene@lazutkin.com, 3 years ago)
Line 
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>&lt;function _checklogin at 0x407de6f4&gt;</div></td>
178                 </tr>
179              
180                 <tr>
181                   <td>db</td>
182                   <td class="code"><div>&lt;module 'django.core.db' from '/home/elazutkin/djsrc/django/core/db/__init__.pyc'&gt;</div></td>
183                 </tr>
184              
185                 <tr>
186                   <td>e</td>
187                   <td class="code"><div>&lt;exceptions.AttributeError instance at 0x407ea04c&gt;</div></td>
188                 </tr>
189              
190                 <tr>
191                   <td>exceptions</td>
192                   <td class="code"><div>&lt;module 'django.core.exceptions' from '/home/elazutkin/djsrc/django/core/exceptions.pyc'&gt;</div></td>
193                 </tr>
194              
195                 <tr>
196                   <td>mail_admins</td>
197                   <td class="code"><div>&lt;function mail_admins at 0x4076b4c4&gt;</div></td>
198                 </tr>
199              
200                 <tr>
201                   <td>middleware_method</td>
202                   <td class="code"><div>&lt;bound
203 method CommonMiddleware.process_request of
204 &lt;django.middleware.common.CommonMiddleware instance at
205 0x4056c30c&gt;&gt;</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>&lt;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': &lt;fcgi.OutputStream
262 object at 0x4063f52c&gt;, 'wsgi.input': &lt;fcgi.InputStream object at
263 0x4063f7ec&gt;, 'wsgi.multiprocess': True, 'wsgi.multithread': True,
264 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1,
265 0)}&gt;</div></td>
266                 </tr>
267              
268                 <tr>
269                   <td>resolver</td>
270                   <td class="code"><div>&lt;django.core.urlresolvers.RegexURLResolver object at 0x4045a6cc&gt;</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>&lt;django.core.handlers.wsgi.WSGIHandler instance at 0x40247cac&gt;</div></td>
281                 </tr>
282              
283                 <tr>
284                   <td>urlresolvers</td>
285                   <td class="code"><div>&lt;module 'django.core.urlresolvers' from '/home/elazutkin/djsrc/django/core/urlresolvers.pyc'&gt;</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>&lt;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': &lt;fcgi.OutputStream
378 object at 0x4063f52c&gt;, 'wsgi.input': &lt;fcgi.InputStream object at
379 0x4063f7ec&gt;, 'wsgi.multiprocess': True, 'wsgi.multithread': True,
380 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1,
381 0)}&gt;</div></td>
382                 </tr>
383              
384                 <tr>
385                   <td>view_func</td>
386                   <td class="code"><div>&lt;function change_list at 0x407de4c4&gt;</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>&lt;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': &lt;fcgi.OutputStream
476 object at 0x4063f52c&gt;, 'wsgi.input': &lt;fcgi.InputStream object at
477 0x4063f7ec&gt;, 'wsgi.multiprocess': True, 'wsgi.multithread': True,
478 'wsgi.run_once': False, 'wsgi.url_scheme': 'http', 'wsgi.version': (1,
479 0)}&gt;</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>&lt;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