Ticket #14312: AttributeError_for_list_editable.html

File AttributeError_for_list_editable.html, 106.8 KB (added by Vlada Macek, 14 years ago)

full HTML debugging traceback

Line 
1
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html lang="en">
4<head>
5 <meta http-equiv="content-type" content="text/html; charset=utf-8">
6 <meta name="robots" content="NONE,NOARCHIVE">
7 <title>AttributeError at /admin/edittest/mymodel/</title>
8 <style type="text/css">
9 html * { padding:0; margin:0; }
10 body * { padding:10px 20px; }
11 body * * { padding:0; }
12 body { font:small sans-serif; }
13 body>div { border-bottom:1px solid #ddd; }
14 h1 { font-weight:normal; }
15 h2 { margin-bottom:.8em; }
16 h2 span { font-size:80%; color:#666; font-weight:normal; }
17 h3 { margin:1em 0 .5em 0; }
18 h4 { margin:0 0 .5em 0; font-weight: normal; }
19 table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
20 tbody td, tbody th { vertical-align:top; padding:2px 3px; }
21 thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; }
22 tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
23 table.vars { margin:5px 0 2px 40px; }
24 table.vars td, table.req td { font-family:monospace; }
25 table td.code { width:100%; }
26 table td.code div { overflow:hidden; }
27 table.source th { color:#666; }
28 table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
29 ul.traceback { list-style-type:none; }
30 ul.traceback li.frame { margin-bottom:1em; }
31 div.context { margin: 10px 0; }
32 div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
33 div.context ol li { font-family:monospace; white-space:pre; color:#666; cursor:pointer; }
34 div.context ol.context-line li { color:black; background-color:#ccc; }
35 div.context ol.context-line li span { float: right; }
36 div.commands { margin-left: 40px; }
37 div.commands a { color:black; text-decoration:none; }
38 #summary { background: #ffc; }
39 #summary h2 { font-weight: normal; color: #666; }
40 #explanation { background:#eee; }
41 #template, #template-not-exist { background:#f6f6f6; }
42 #template-not-exist ul { margin: 0 0 0 20px; }
43 #unicode-hint { background:#eee; }
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 h2 span.commands { font-size:.7em;}
52 span.commands a:link {color:#5E5694;}
53 pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
54 </style>
55 <script type="text/javascript">
56 //<!--
57 function getElementsByClassName(oElm, strTagName, strClassName){
58 // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
59 var arrElements = (strTagName == "*" && document.all)? document.all :
60 oElm.getElementsByTagName(strTagName);
61 var arrReturnElements = new Array();
62 strClassName = strClassName.replace(/\-/g, "\-");
63 var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
64 var oElement;
65 for(var i=0; i<arrElements.length; i++){
66 oElement = arrElements[i];
67 if(oRegExp.test(oElement.className)){
68 arrReturnElements.push(oElement);
69 }
70 }
71 return (arrReturnElements)
72 }
73 function hideAll(elems) {
74 for (var e = 0; e < elems.length; e++) {
75 elems[e].style.display = 'none';
76 }
77 }
78 window.onload = function() {
79 hideAll(getElementsByClassName(document, 'table', 'vars'));
80 hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
81 hideAll(getElementsByClassName(document, 'ol', 'post-context'));
82 hideAll(getElementsByClassName(document, 'div', 'pastebin'));
83 }
84 function toggle() {
85 for (var i = 0; i < arguments.length; i++) {
86 var e = document.getElementById(arguments[i]);
87 if (e) {
88 e.style.display = e.style.display == 'none' ? 'block' : 'none';
89 }
90 }
91 return false;
92 }
93 function varToggle(link, id) {
94 toggle('v' + id);
95 var s = link.getElementsByTagName('span')[0];
96 var uarr = String.fromCharCode(0x25b6);
97 var darr = String.fromCharCode(0x25bc);
98 s.innerHTML = s.innerHTML == uarr ? darr : uarr;
99 return false;
100 }
101 function switchPastebinFriendly(link) {
102 s1 = "Switch to copy-and-paste view";
103 s2 = "Switch back to interactive view";
104 link.innerHTML = link.innerHTML == s1 ? s2 : s1;
105 toggle('browserTraceback', 'pastebinTraceback');
106 return false;
107 }
108 //-->
109 </script>
110</head>
111<body>
112<div id="summary">
113 <h1>AttributeError at /admin/edittest/mymodel/</h1>
114 <pre class="exception_value">&#39;tuple&#39; object has no attribute &#39;ordered&#39;</pre>
115 <table class="meta">
116 <tr>
117 <th>Request Method:</th>
118 <td>GET</td>
119 </tr>
120 <tr>
121 <th>Request URL:</th>
122 <td>http://localhost:8081/admin/edittest/mymodel/?p=2</td>
123 </tr>
124 <tr>
125 <th>Django Version:</th>
126 <td>1.3 pre-alpha SVN-13863</td>
127 </tr>
128 <tr>
129 <th>Exception Type:</th>
130 <td>AttributeError</td>
131 </tr>
132 <tr>
133 <th>Exception Value:</th>
134 <td><pre>&#39;tuple&#39; object has no attribute &#39;ordered&#39;</pre></td>
135 </tr>
136 <tr>
137 <th>Exception Location:</th>
138 <td>/home/tuttle/tmp/editable-test/django-trunk/django/forms/models.py in get_queryset, line 476</td>
139 </tr>
140 <tr>
141 <th>Python Executable:</th>
142 <td>/usr/bin/python</td>
143 </tr>
144 <tr>
145 <th>Python Version:</th>
146 <td>2.6.4</td>
147 </tr>
148 <tr>
149 <th>Python Path:</th>
150 <td>[&#39;/home/tuttle/tmp/editable-test/editabletest&#39;, &#39;/home/tuttle/tmp/editable-test/django-trunk&#39;, &#39;/usr/lib/python2.6&#39;, &#39;/usr/lib/python2.6/plat-linux2&#39;, &#39;/usr/lib/python2.6/lib-tk&#39;, &#39;/usr/lib/python2.6/lib-old&#39;, &#39;/usr/lib/python2.6/lib-dynload&#39;, &#39;/usr/lib/python2.6/dist-packages&#39;, &#39;/usr/lib/python2.6/dist-packages/PIL&#39;, &#39;/usr/lib/python2.6/dist-packages/gst-0.10&#39;, &#39;/usr/lib/pymodules/python2.6&#39;, &#39;/usr/lib/pymodules/python2.6/gtk-2.0&#39;, &#39;/usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode&#39;]</td>
151 </tr>
152 <tr>
153 <th>Server time:</th>
154 <td>Sun, 19 Sep 2010 14:27:17 -0500</td>
155 </tr>
156 </table>
157</div>
158
159
160
161<div id="traceback">
162 <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);">Switch to copy-and-paste view</a></span></h2>
163
164 <div id="browserTraceback">
165 <ul class="traceback">
166
167 <li class="frame">
168 <code>/home/tuttle/tmp/editable-test/django-trunk/django/core/handlers/base.py</code> in <code>get_response</code>
169
170
171 <div class="context" id="c3047862916">
172
173 <ol start="93" class="pre-context" id="pre3047862916"><li onclick="toggle('pre3047862916', 'post3047862916')"> # Apply view middleware</li><li onclick="toggle('pre3047862916', 'post3047862916')"> for middleware_method in self._view_middleware:</li><li onclick="toggle('pre3047862916', 'post3047862916')"> response = middleware_method(request, callback, callback_args, callback_kwargs)</li><li onclick="toggle('pre3047862916', 'post3047862916')"> if response:</li><li onclick="toggle('pre3047862916', 'post3047862916')"> return response</li><li onclick="toggle('pre3047862916', 'post3047862916')"></li><li onclick="toggle('pre3047862916', 'post3047862916')"> try:</li></ol>
174
175 <ol start="100" class="context-line"><li onclick="toggle('pre3047862916', 'post3047862916')"> response = callback(request, *callback_args, **callback_kwargs) <span>...</span></li></ol>
176
177 <ol start='101' class="post-context" id="post3047862916"><li onclick="toggle('pre3047862916', 'post3047862916')"> except Exception, e:</li><li onclick="toggle('pre3047862916', 'post3047862916')"> # If the view raised an exception, run it through exception</li><li onclick="toggle('pre3047862916', 'post3047862916')"> # middleware, and if the exception middleware returns a</li><li onclick="toggle('pre3047862916', 'post3047862916')"> # response, use that. Otherwise, reraise the exception.</li><li onclick="toggle('pre3047862916', 'post3047862916')"> for middleware_method in self._exception_middleware:</li><li onclick="toggle('pre3047862916', 'post3047862916')"> response = middleware_method(request, e)</li></ol>
178
179 </div>
180
181
182
183 <div class="commands">
184 <a href="#" onclick="return varToggle(this, '3047862916')"><span>&#x25b6;</span> Local vars</a>
185 </div>
186 <table class="vars" id="v3047862916">
187 <thead>
188 <tr>
189 <th>Variable</th>
190 <th>Value</th>
191 </tr>
192 </thead>
193 <tbody>
194
195 <tr>
196 <td>callback</td>
197 <td class="code"><div>&lt;function changelist_view at 0x9846064&gt;</div></td>
198 </tr>
199
200 <tr>
201 <td>callback_args</td>
202 <td class="code"><div>()</div></td>
203 </tr>
204
205 <tr>
206 <td>callback_kwargs</td>
207 <td class="code"><div>{}</div></td>
208 </tr>
209
210 <tr>
211 <td>e</td>
212 <td class="code"><div>AttributeError(&quot;&#39;tuple&#39; object has no attribute &#39;ordered&#39;&quot;,)</div></td>
213 </tr>
214
215 <tr>
216 <td>exceptions</td>
217 <td class="code"><div>&lt;module &#39;django.core.exceptions&#39; from &#39;/home/tuttle/tmp/editable-test/django-trunk/django/core/exceptions.pyc&#39;&gt;</div></td>
218 </tr>
219
220 <tr>
221 <td>middleware_method</td>
222 <td class="code"><div>&lt;bound method CsrfViewMiddleware.process_view of &lt;django.middleware.csrf.CsrfViewMiddleware object at 0x97d2f6c&gt;&gt;</div></td>
223 </tr>
224
225 <tr>
226 <td>receivers</td>
227 <td class="code"><div>[(&lt;function _rollback_on_exception at 0x94317d4&gt;, None)]</div></td>
228 </tr>
229
230 <tr>
231 <td>request</td>
232 <td class="code"><div>&lt;WSGIRequest
233GET:&lt;QueryDict: {u&#39;p&#39;: [u&#39;2&#39;]}&gt;,
234POST:&lt;QueryDict: {}&gt;,
235COOKIES:{&#39;__utma&#39;: &#39;1.1814913469.1283793829.1283793829.1283793829.1&#39;,
236 &#39;__utmz&#39;: &#39;1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
237 &#39;csrftoken&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
238 &#39;django_language&#39;: &#39;cs&#39;,
239 &#39;sessionid&#39;: &#39;8dfca394e11b853ff19f5ed43395f660&#39;},
240META:{&#39;CDPATH&#39;: &#39;.:~:~/data/Fotky/netrideny-archiv&#39;,
241 &#39;CONTENT_LENGTH&#39;: &#39;&#39;,
242 &#39;CONTENT_TYPE&#39;: &#39;text/plain&#39;,
243 &#39;CSRF_COOKIE&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
244 &#39;DBUS_SESSION_BUS_ADDRESS&#39;: &#39;unix:abstract=/tmp/dbus-Z8z73Ec0l5,guid=586bf253f65eb398760c4e8b4c965042&#39;,
245 &#39;DISPLAY&#39;: &#39;:0.0&#39;,
246 &#39;DJANGO_SETTINGS_MODULE&#39;: &#39;editabletest.settings&#39;,
247 &#39;EDITOR&#39;: &#39;joe&#39;,
248 &#39;EMAIL&#39;: &#39;tuttle@sandbox.cz&#39;,
249 &#39;FIGNORE&#39;: &#39;.o:~&#39;,
250 &#39;GATEWAY_INTERFACE&#39;: &#39;CGI/1.1&#39;,
251 &#39;GREP_COLOR&#39;: &#39;1;34&#39;,
252 &#39;GREP_OPTIONS&#39;: &#39;--color=auto&#39;,
253 &#39;HISTCONTROL&#39;: &#39;ignoreboth&#39;,
254 &#39;HISTFILE&#39;: &#39;/home/tuttle/.history_bash/bashhist.puk.20100919-204317.pid6014&#39;,
255 &#39;HISTSIZE&#39;: &#39;5000&#39;,
256 &#39;HOME&#39;: &#39;/home/tuttle&#39;,
257 &#39;HTTP_ACCEPT&#39;: &#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&#39;,
258 &#39;HTTP_ACCEPT_CHARSET&#39;: &#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;,
259 &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip,deflate&#39;,
260 &#39;HTTP_ACCEPT_LANGUAGE&#39;: &#39;cs,en-us;q=0.7,en;q=0.3&#39;,
261 &#39;HTTP_CONNECTION&#39;: &#39;keep-alive&#39;,
262 &#39;HTTP_COOKIE&#39;: &#39;csrftoken=b485bb44c526ebb351fafa8c64391d68; sessionid=8dfca394e11b853ff19f5ed43395f660; django_language=cs; __utma=1.1814913469.1283793829.1283793829.1283793829.1; __utmz=1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
263 &#39;HTTP_HOST&#39;: &#39;localhost:8081&#39;,
264 &#39;HTTP_IF_NONE_MATCH&#39;: &#39;&quot;700c83e328799a470e5aa858da708e3d&quot;&#39;,
265 &#39;HTTP_KEEP_ALIVE&#39;: &#39;115&#39;,
266 &#39;HTTP_USER_AGENT&#39;: &#39;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11pre) Gecko/20100916 Ubuntu/9.10 (karmic) Namoroka/3.6.11pre&#39;,
267 &#39;LANG&#39;: &#39;en_US.UTF-8&#39;,
268 &#39;LESS&#39;: &#39;-isMRnq#3~&#39;,
269 &#39;LESSCLOSE&#39;: &#39;/usr/bin/lesspipe %s %s&#39;,
270 &#39;LESSOPEN&#39;: &#39;| /usr/bin/lesspipe %s&#39;,
271 &#39;LOGNAME&#39;: &#39;tuttle&#39;,
272 &#39;OLDPWD&#39;: &#39;/home/tuttle/tmp/editable-test&#39;,
273 &#39;ORIGPHOTOS&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
274 &#39;ORIGROTDIR&#39;: &#39;/home/tuttle/tmp/origphotos&#39;,
275 &#39;ORIGSHRINKDIR&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
276 &#39;PATH&#39;: &#39;~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&#39;,
277 &#39;PATH_INFO&#39;: u&#39;/admin/edittest/mymodel/&#39;,
278 &#39;PHOTOTARGET&#39;: &#39;/home/tuttle/data/Fotky/netrideny-archiv&#39;,
279 &#39;PROMPT_COMMAND&#39;: &#39;history -a&#39;,
280 &#39;PS1&#39;: &#39;\\[\\e]0;-\\a\\]`rctmp=$?; [ $rctmp != 0 ] &amp;&amp; echo &quot;(rc=$rctmp) &quot;`\\[\\e[32m\\]\\D{%H%M%S} ${OLDPWD/#$HOME/~} \\[\\e[34m\\]\\h \\w\\[\\e[0m\\]\\n\\$ &#39;,
281 &#39;PWD&#39;: &#39;/home/tuttle/tmp/editable-test/editabletest&#39;,
282 &#39;PYTHONPATH&#39;: &#39;/home/tuttle/tmp/editable-test/django-trunk/&#39;,
283 &#39;QUERY_STRING&#39;: &#39;p=2&#39;,
284 &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
285 &#39;REMOTE_HOST&#39;: &#39;&#39;,
286 &#39;REQUEST_METHOD&#39;: &#39;GET&#39;,
287 &#39;RUN_MAIN&#39;: &#39;true&#39;,
288 &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
289 &#39;SERVER_NAME&#39;: &#39;localhost&#39;,
290 &#39;SERVER_PORT&#39;: &#39;8081&#39;,
291 &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.1&#39;,
292 &#39;SERVER_SOFTWARE&#39;: &#39;WSGIServer/0.1 Python/2.6.4&#39;,
293 &#39;SHELL&#39;: &#39;/bin/bash&#39;,
294 &#39;SHLVL&#39;: &#39;1&#39;,
295 &#39;SSH_AGENT_PID&#39;: &#39;4221&#39;,
296 &#39;SSH_AUTH_SOCK&#39;: &#39;/tmp/ssh-njGJdh4197/agent.4197&#39;,
297 &#39;TERM&#39;: &#39;xterm&#39;,
298 &#39;TZ&#39;: &#39;America/Chicago&#39;,
299 &#39;USER&#39;: &#39;tuttle&#39;,
300 &#39;VISUAL&#39;: &#39;joe&#39;,
301 &#39;WINDOWID&#39;: &#39;41943055&#39;,
302 &#39;WINDOWPATH&#39;: &#39;7&#39;,
303 &#39;XDG_SESSION_COOKIE&#39;: &#39;bc7ed7881ec8274b22e18fab4b1e7747-1284919362.717707-2026208578&#39;,
304 &#39;XTERM_LOCALE&#39;: &#39;en_US.UTF-8&#39;,
305 &#39;XTERM_SHELL&#39;: &#39;/bin/bash&#39;,
306 &#39;XTERM_VERSION&#39;: &#39;XTerm(243)&#39;,
307 &#39;_&#39;: &#39;./manage.py&#39;,
308 &#39;wsgi.errors&#39;: &lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39; at 0xb761a0c0&gt;,
309 &#39;wsgi.file_wrapper&#39;: &lt;class &#39;django.core.servers.basehttp.FileWrapper&#39;&gt;,
310 &#39;wsgi.input&#39;: &lt;socket._fileobject object at 0x984b56c&gt;,
311 &#39;wsgi.multiprocess&#39;: False,
312 &#39;wsgi.multithread&#39;: True,
313 &#39;wsgi.run_once&#39;: False,
314 &#39;wsgi.url_scheme&#39;: &#39;http&#39;,
315 &#39;wsgi.version&#39;: (1, 0)}&gt;</div></td>
316 </tr>
317
318 <tr>
319 <td>resolver</td>
320 <td class="code"><div>&lt;RegexURLResolver editabletest.urls (None:None) ^/&gt;</div></td>
321 </tr>
322
323 <tr>
324 <td>response</td>
325 <td class="code"><div>None</div></td>
326 </tr>
327
328 <tr>
329 <td>self</td>
330 <td class="code"><div>&lt;django.core.handlers.wsgi.WSGIHandler object at 0x971d6ac&gt;</div></td>
331 </tr>
332
333 <tr>
334 <td>settings</td>
335 <td class="code"><div>&lt;django.conf.LazySettings object at 0xb726314c&gt;</div></td>
336 </tr>
337
338 <tr>
339 <td>urlconf</td>
340 <td class="code"><div>&#39;editabletest.urls&#39;</div></td>
341 </tr>
342
343 <tr>
344 <td>urlresolvers</td>
345 <td class="code"><div>&lt;module &#39;django.core.urlresolvers&#39; from &#39;/home/tuttle/tmp/editable-test/django-trunk/django/core/urlresolvers.pyc&#39;&gt;</div></td>
346 </tr>
347
348 </tbody>
349 </table>
350
351 </li>
352
353 <li class="frame">
354 <code>/home/tuttle/tmp/editable-test/django-trunk/django/contrib/admin/options.py</code> in <code>wrapper</code>
355
356
357 <div class="context" id="c3047862436">
358
359 <ol start="238" class="pre-context" id="pre3047862436"><li onclick="toggle('pre3047862436', 'post3047862436')"> super(ModelAdmin, self).__init__()</li><li onclick="toggle('pre3047862436', 'post3047862436')"></li><li onclick="toggle('pre3047862436', 'post3047862436')"> def get_urls(self):</li><li onclick="toggle('pre3047862436', 'post3047862436')"> from django.conf.urls.defaults import patterns, url</li><li onclick="toggle('pre3047862436', 'post3047862436')"></li><li onclick="toggle('pre3047862436', 'post3047862436')"> def wrap(view):</li><li onclick="toggle('pre3047862436', 'post3047862436')"> def wrapper(*args, **kwargs):</li></ol>
360
361 <ol start="245" class="context-line"><li onclick="toggle('pre3047862436', 'post3047862436')"> return self.admin_site.admin_view(view)(*args, **kwargs) <span>...</span></li></ol>
362
363 <ol start='246' class="post-context" id="post3047862436"><li onclick="toggle('pre3047862436', 'post3047862436')"> return update_wrapper(wrapper, view)</li><li onclick="toggle('pre3047862436', 'post3047862436')"></li><li onclick="toggle('pre3047862436', 'post3047862436')"> info = self.model._meta.app_label, self.model._meta.module_name</li><li onclick="toggle('pre3047862436', 'post3047862436')"></li><li onclick="toggle('pre3047862436', 'post3047862436')"> urlpatterns = patterns(&#39;&#39;,</li><li onclick="toggle('pre3047862436', 'post3047862436')"> url(r&#39;^$&#39;,</li></ol>
364
365 </div>
366
367
368
369 <div class="commands">
370 <a href="#" onclick="return varToggle(this, '3047862436')"><span>&#x25b6;</span> Local vars</a>
371 </div>
372 <table class="vars" id="v3047862436">
373 <thead>
374 <tr>
375 <th>Variable</th>
376 <th>Value</th>
377 </tr>
378 </thead>
379 <tbody>
380
381 <tr>
382 <td>args</td>
383 <td class="code"><div>(&lt;WSGIRequest
384GET:&lt;QueryDict: {u&#39;p&#39;: [u&#39;2&#39;]}&gt;,
385POST:&lt;QueryDict: {}&gt;,
386COOKIES:{&#39;__utma&#39;: &#39;1.1814913469.1283793829.1283793829.1283793829.1&#39;,
387 &#39;__utmz&#39;: &#39;1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
388 &#39;csrftoken&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
389 &#39;django_language&#39;: &#39;cs&#39;,
390 &#39;sessionid&#39;: &#39;8dfca394e11b853ff19f5ed43395f660&#39;},
391META:{&#39;CDPATH&#39;: &#39;.:~:~/data/Fotky/netrideny-archiv&#39;,
392 &#39;CONTENT_LENGTH&#39;: &#39;&#39;,
393 &#39;CONTENT_TYPE&#39;: &#39;text/plain&#39;,
394 &#39;CSRF_COOKIE&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
395 &#39;DBUS_SESSION_BUS_ADDRESS&#39;: &#39;unix:abstract=/tmp/dbus-Z8z73Ec0l5,guid=586bf253f65eb398760c4e8b4c965042&#39;,
396 &#39;DISPLAY&#39;: &#39;:0.0&#39;,
397 &#39;DJANGO_SETTINGS_MODULE&#39;: &#39;editabletest.settings&#39;,
398 &#39;EDITOR&#39;: &#39;joe&#39;,
399 &#39;EMAIL&#39;: &#39;tuttle@sandbox.cz&#39;,
400 &#39;FIGNORE&#39;: &#39;.o:~&#39;,
401 &#39;GATEWAY_INTERFACE&#39;: &#39;CGI/1.1&#39;,
402 &#39;GREP_COLOR&#39;: &#39;1;34&#39;,
403 &#39;GREP_OPTIONS&#39;: &#39;--color=auto&#39;,
404 &#39;HISTCONTROL&#39;: &#39;ignoreboth&#39;,
405 &#39;HISTFILE&#39;: &#39;/home/tuttle/.history_bash/bashhist.puk.20100919-204317.pid6014&#39;,
406 &#39;HISTSIZE&#39;: &#39;5000&#39;,
407 &#39;HOME&#39;: &#39;/home/tuttle&#39;,
408 &#39;HTTP_ACCEPT&#39;: &#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&#39;,
409 &#39;HTTP_ACCEPT_CHARSET&#39;: &#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;,
410 &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip,deflate&#39;,
411 &#39;HTTP_ACCEPT_LANGUAGE&#39;: &#39;cs,en-us;q=0.7,en;q=0.3&#39;,
412 &#39;HTTP_CONNECTION&#39;: &#39;keep-alive&#39;,
413 &#39;HTTP_COOKIE&#39;: &#39;csrftoken=b485bb44c526ebb351fafa8c64391d68; sessionid=8dfca394e11b853ff19f5ed43395f660; django_language=cs; __utma=1.1814913469.1283793829.1283793829.1283793829.1; __utmz=1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
414 &#39;HTTP_HOST&#39;: &#39;localhost:8081&#39;,
415 &#39;HTTP_IF_NONE_MATCH&#39;: &#39;&quot;700c83e328799a470e5aa858da708e3d&quot;&#39;,
416 &#39;HTTP_KEEP_ALIVE&#39;: &#39;115&#39;,
417 &#39;HTTP_USER_AGENT&#39;: &#39;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11pre) Gecko/20100916 Ubuntu/9.10 (karmic) Namoroka/3.6.11pre&#39;,
418 &#39;LANG&#39;: &#39;en_US.UTF-8&#39;,
419 &#39;LESS&#39;: &#39;-isMRnq#3~&#39;,
420 &#39;LESSCLOSE&#39;: &#39;/usr/bin/lesspipe %s %s&#39;,
421 &#39;LESSOPEN&#39;: &#39;| /usr/bin/lesspipe %s&#39;,
422 &#39;LOGNAME&#39;: &#39;tuttle&#39;,
423 &#39;OLDPWD&#39;: &#39;/home/tuttle/tmp/editable-test&#39;,
424 &#39;ORIGPHOTOS&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
425 &#39;ORIGROTDIR&#39;: &#39;/home/tuttle/tmp/origphotos&#39;,
426 &#39;ORIGSHRINKDIR&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
427 &#39;PATH&#39;: &#39;~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&#39;,
428 &#39;PATH_INFO&#39;: u&#39;/admin/edittest/mymodel/&#39;,
429 &#39;PHOTOTARGET&#39;: &#39;/home/tuttle/data/Fotky/netrideny-archiv&#39;,
430 &#39;PROMPT_COMMAND&#39;: &#39;history -a&#39;,
431 &#39;PS1&#39;: &#39;\\[\\e]0;-\\a\\]`rctmp=$?; [ $rctmp != 0 ] &amp;&amp; echo &quot;(rc=$rctmp) &quot;`\\[\\e[32m\\]\\D{%H%M%S} ${OLDPWD/#$HOME/~} \\[\\e[34m\\]\\h \\w\\[\\e[0m\\]\\n\\$ &#39;,
432 &#39;PWD&#39;: &#39;/home/tuttle/tmp/editable-test/editabletest&#39;,
433 &#39;PYTHONPATH&#39;: &#39;/home/tuttle/tmp/editable-test/django-trunk/&#39;,
434 &#39;QUERY_STRING&#39;: &#39;p=2&#39;,
435 &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
436 &#39;REMOTE_HOST&#39;: &#39;&#39;,
437 &#39;REQUEST_METHOD&#39;: &#39;GET&#39;,
438 &#39;RUN_MAIN&#39;: &#39;true&#39;,
439 &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
440 &#39;SERVER_NAME&#39;: &#39;localhost&#39;,
441 &#39;SERVER_PORT&#39;: &#39;8081&#39;,
442 &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.1&#39;,
443 &#39;SERVER_SOFTWARE&#39;: &#39;WSGIServer/0.1 Python/2.6.4&#39;,
444 &#39;SHELL&#39;: &#39;/bin/bash&#39;,
445 &#39;SHLVL&#39;: &#39;1&#39;,
446 &#39;SSH_AGENT_PID&#39;: &#39;4221&#39;,
447 &#39;SSH_AUTH_SOCK&#39;: &#39;/tmp/ssh-njGJdh4197/agent.4197&#39;,
448 &#39;TERM&#39;: &#39;xterm&#39;,
449 &#39;TZ&#39;: &#39;America/Chicago&#39;,
450 &#39;USER&#39;: &#39;tuttle&#39;,
451 &#39;VISUAL&#39;: &#39;joe&#39;,
452 &#39;WINDOWID&#39;: &#39;41943055&#39;,
453 &#39;WINDOWPATH&#39;: &#39;7&#39;,
454 &#39;XDG_SESSION_COOKIE&#39;: &#39;bc7ed7881ec8274b22e18fab4b1e7747-1284919362.717707-2026208578&#39;,
455 &#39;XTERM_LOCALE&#39;: &#39;en_US.UTF-8&#39;,
456 &#39;XTERM_SHELL&#39;: &#39;/bin/bash&#39;,
457 &#39;XTERM_VERSION&#39;: &#39;XTerm(243)&#39;,
458 &#39;_&#39;: &#39;./manage.py&#39;,
459 &#39;wsgi.errors&#39;: &lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39; at 0xb761a0c0&gt;,
460 &#39;wsgi.file_wrapper&#39;: &lt;class &#39;django.core.servers.basehttp.FileWrapper&#39;&gt;,
461 &#39;wsgi.input&#39;: &lt;socket._fileobject object at 0x984b56c&gt;,
462 &#39;wsgi.multiprocess&#39;: False,
463 &#39;wsgi.multithread&#39;: True,
464 &#39;wsgi.run_once&#39;: False,
465 &#39;wsgi.url_scheme&#39;: &#39;http&#39;,
466 &#39;wsgi.version&#39;: (1, 0)}&gt;,)</div></td>
467 </tr>
468
469 <tr>
470 <td>kwargs</td>
471 <td class="code"><div>{}</div></td>
472 </tr>
473
474 <tr>
475 <td>self</td>
476 <td class="code"><div>&lt;editabletest.edittest.admin.MyModelAdmin object at 0x983dbac&gt;</div></td>
477 </tr>
478
479 <tr>
480 <td>view</td>
481 <td class="code"><div>&lt;bound method MyModelAdmin.changelist_view of &lt;editabletest.edittest.admin.MyModelAdmin object at 0x983dbac&gt;&gt;</div></td>
482 </tr>
483
484 </tbody>
485 </table>
486
487 </li>
488
489 <li class="frame">
490 <code>/home/tuttle/tmp/editable-test/django-trunk/django/utils/decorators.py</code> in <code>_wrapped_view</code>
491
492
493 <div class="context" id="c3047865036">
494
495 <ol start="69" class="pre-context" id="pre3047865036"><li onclick="toggle('pre3047865036', 'post3047865036')"> if result is not None:</li><li onclick="toggle('pre3047865036', 'post3047865036')"> return result</li><li onclick="toggle('pre3047865036', 'post3047865036')"> if hasattr(middleware, &#39;process_view&#39;):</li><li onclick="toggle('pre3047865036', 'post3047865036')"> result = middleware.process_view(request, view_func, args, kwargs)</li><li onclick="toggle('pre3047865036', 'post3047865036')"> if result is not None:</li><li onclick="toggle('pre3047865036', 'post3047865036')"> return result</li><li onclick="toggle('pre3047865036', 'post3047865036')"> try:</li></ol>
496
497 <ol start="76" class="context-line"><li onclick="toggle('pre3047865036', 'post3047865036')"> response = view_func(request, *args, **kwargs) <span>...</span></li></ol>
498
499 <ol start='77' class="post-context" id="post3047865036"><li onclick="toggle('pre3047865036', 'post3047865036')"> except Exception, e:</li><li onclick="toggle('pre3047865036', 'post3047865036')"> if hasattr(middleware, &#39;process_exception&#39;):</li><li onclick="toggle('pre3047865036', 'post3047865036')"> result = middleware.process_exception(request, e)</li><li onclick="toggle('pre3047865036', 'post3047865036')"> if result is not None:</li><li onclick="toggle('pre3047865036', 'post3047865036')"> return result</li><li onclick="toggle('pre3047865036', 'post3047865036')"> raise</li></ol>
500
501 </div>
502
503
504
505 <div class="commands">
506 <a href="#" onclick="return varToggle(this, '3047865036')"><span>&#x25b6;</span> Local vars</a>
507 </div>
508 <table class="vars" id="v3047865036">
509 <thead>
510 <tr>
511 <th>Variable</th>
512 <th>Value</th>
513 </tr>
514 </thead>
515 <tbody>
516
517 <tr>
518 <td>args</td>
519 <td class="code"><div>()</div></td>
520 </tr>
521
522 <tr>
523 <td>e</td>
524 <td class="code"><div>AttributeError(&quot;&#39;tuple&#39; object has no attribute &#39;ordered&#39;&quot;,)</div></td>
525 </tr>
526
527 <tr>
528 <td>kwargs</td>
529 <td class="code"><div>{}</div></td>
530 </tr>
531
532 <tr>
533 <td>middleware</td>
534 <td class="code"><div>&lt;django.middleware.csrf.CsrfViewMiddleware object at 0x96ceb6c&gt;</div></td>
535 </tr>
536
537 <tr>
538 <td>request</td>
539 <td class="code"><div>&lt;WSGIRequest
540GET:&lt;QueryDict: {u&#39;p&#39;: [u&#39;2&#39;]}&gt;,
541POST:&lt;QueryDict: {}&gt;,
542COOKIES:{&#39;__utma&#39;: &#39;1.1814913469.1283793829.1283793829.1283793829.1&#39;,
543 &#39;__utmz&#39;: &#39;1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
544 &#39;csrftoken&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
545 &#39;django_language&#39;: &#39;cs&#39;,
546 &#39;sessionid&#39;: &#39;8dfca394e11b853ff19f5ed43395f660&#39;},
547META:{&#39;CDPATH&#39;: &#39;.:~:~/data/Fotky/netrideny-archiv&#39;,
548 &#39;CONTENT_LENGTH&#39;: &#39;&#39;,
549 &#39;CONTENT_TYPE&#39;: &#39;text/plain&#39;,
550 &#39;CSRF_COOKIE&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
551 &#39;DBUS_SESSION_BUS_ADDRESS&#39;: &#39;unix:abstract=/tmp/dbus-Z8z73Ec0l5,guid=586bf253f65eb398760c4e8b4c965042&#39;,
552 &#39;DISPLAY&#39;: &#39;:0.0&#39;,
553 &#39;DJANGO_SETTINGS_MODULE&#39;: &#39;editabletest.settings&#39;,
554 &#39;EDITOR&#39;: &#39;joe&#39;,
555 &#39;EMAIL&#39;: &#39;tuttle@sandbox.cz&#39;,
556 &#39;FIGNORE&#39;: &#39;.o:~&#39;,
557 &#39;GATEWAY_INTERFACE&#39;: &#39;CGI/1.1&#39;,
558 &#39;GREP_COLOR&#39;: &#39;1;34&#39;,
559 &#39;GREP_OPTIONS&#39;: &#39;--color=auto&#39;,
560 &#39;HISTCONTROL&#39;: &#39;ignoreboth&#39;,
561 &#39;HISTFILE&#39;: &#39;/home/tuttle/.history_bash/bashhist.puk.20100919-204317.pid6014&#39;,
562 &#39;HISTSIZE&#39;: &#39;5000&#39;,
563 &#39;HOME&#39;: &#39;/home/tuttle&#39;,
564 &#39;HTTP_ACCEPT&#39;: &#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&#39;,
565 &#39;HTTP_ACCEPT_CHARSET&#39;: &#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;,
566 &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip,deflate&#39;,
567 &#39;HTTP_ACCEPT_LANGUAGE&#39;: &#39;cs,en-us;q=0.7,en;q=0.3&#39;,
568 &#39;HTTP_CONNECTION&#39;: &#39;keep-alive&#39;,
569 &#39;HTTP_COOKIE&#39;: &#39;csrftoken=b485bb44c526ebb351fafa8c64391d68; sessionid=8dfca394e11b853ff19f5ed43395f660; django_language=cs; __utma=1.1814913469.1283793829.1283793829.1283793829.1; __utmz=1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
570 &#39;HTTP_HOST&#39;: &#39;localhost:8081&#39;,
571 &#39;HTTP_IF_NONE_MATCH&#39;: &#39;&quot;700c83e328799a470e5aa858da708e3d&quot;&#39;,
572 &#39;HTTP_KEEP_ALIVE&#39;: &#39;115&#39;,
573 &#39;HTTP_USER_AGENT&#39;: &#39;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11pre) Gecko/20100916 Ubuntu/9.10 (karmic) Namoroka/3.6.11pre&#39;,
574 &#39;LANG&#39;: &#39;en_US.UTF-8&#39;,
575 &#39;LESS&#39;: &#39;-isMRnq#3~&#39;,
576 &#39;LESSCLOSE&#39;: &#39;/usr/bin/lesspipe %s %s&#39;,
577 &#39;LESSOPEN&#39;: &#39;| /usr/bin/lesspipe %s&#39;,
578 &#39;LOGNAME&#39;: &#39;tuttle&#39;,
579 &#39;OLDPWD&#39;: &#39;/home/tuttle/tmp/editable-test&#39;,
580 &#39;ORIGPHOTOS&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
581 &#39;ORIGROTDIR&#39;: &#39;/home/tuttle/tmp/origphotos&#39;,
582 &#39;ORIGSHRINKDIR&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
583 &#39;PATH&#39;: &#39;~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&#39;,
584 &#39;PATH_INFO&#39;: u&#39;/admin/edittest/mymodel/&#39;,
585 &#39;PHOTOTARGET&#39;: &#39;/home/tuttle/data/Fotky/netrideny-archiv&#39;,
586 &#39;PROMPT_COMMAND&#39;: &#39;history -a&#39;,
587 &#39;PS1&#39;: &#39;\\[\\e]0;-\\a\\]`rctmp=$?; [ $rctmp != 0 ] &amp;&amp; echo &quot;(rc=$rctmp) &quot;`\\[\\e[32m\\]\\D{%H%M%S} ${OLDPWD/#$HOME/~} \\[\\e[34m\\]\\h \\w\\[\\e[0m\\]\\n\\$ &#39;,
588 &#39;PWD&#39;: &#39;/home/tuttle/tmp/editable-test/editabletest&#39;,
589 &#39;PYTHONPATH&#39;: &#39;/home/tuttle/tmp/editable-test/django-trunk/&#39;,
590 &#39;QUERY_STRING&#39;: &#39;p=2&#39;,
591 &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
592 &#39;REMOTE_HOST&#39;: &#39;&#39;,
593 &#39;REQUEST_METHOD&#39;: &#39;GET&#39;,
594 &#39;RUN_MAIN&#39;: &#39;true&#39;,
595 &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
596 &#39;SERVER_NAME&#39;: &#39;localhost&#39;,
597 &#39;SERVER_PORT&#39;: &#39;8081&#39;,
598 &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.1&#39;,
599 &#39;SERVER_SOFTWARE&#39;: &#39;WSGIServer/0.1 Python/2.6.4&#39;,
600 &#39;SHELL&#39;: &#39;/bin/bash&#39;,
601 &#39;SHLVL&#39;: &#39;1&#39;,
602 &#39;SSH_AGENT_PID&#39;: &#39;4221&#39;,
603 &#39;SSH_AUTH_SOCK&#39;: &#39;/tmp/ssh-njGJdh4197/agent.4197&#39;,
604 &#39;TERM&#39;: &#39;xterm&#39;,
605 &#39;TZ&#39;: &#39;America/Chicago&#39;,
606 &#39;USER&#39;: &#39;tuttle&#39;,
607 &#39;VISUAL&#39;: &#39;joe&#39;,
608 &#39;WINDOWID&#39;: &#39;41943055&#39;,
609 &#39;WINDOWPATH&#39;: &#39;7&#39;,
610 &#39;XDG_SESSION_COOKIE&#39;: &#39;bc7ed7881ec8274b22e18fab4b1e7747-1284919362.717707-2026208578&#39;,
611 &#39;XTERM_LOCALE&#39;: &#39;en_US.UTF-8&#39;,
612 &#39;XTERM_SHELL&#39;: &#39;/bin/bash&#39;,
613 &#39;XTERM_VERSION&#39;: &#39;XTerm(243)&#39;,
614 &#39;_&#39;: &#39;./manage.py&#39;,
615 &#39;wsgi.errors&#39;: &lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39; at 0xb761a0c0&gt;,
616 &#39;wsgi.file_wrapper&#39;: &lt;class &#39;django.core.servers.basehttp.FileWrapper&#39;&gt;,
617 &#39;wsgi.input&#39;: &lt;socket._fileobject object at 0x984b56c&gt;,
618 &#39;wsgi.multiprocess&#39;: False,
619 &#39;wsgi.multithread&#39;: True,
620 &#39;wsgi.run_once&#39;: False,
621 &#39;wsgi.url_scheme&#39;: &#39;http&#39;,
622 &#39;wsgi.version&#39;: (1, 0)}&gt;</div></td>
623 </tr>
624
625 <tr>
626 <td>result</td>
627 <td class="code"><div>None</div></td>
628 </tr>
629
630 <tr>
631 <td>view_func</td>
632 <td class="code"><div>&lt;function inner at 0x98d0a3c&gt;</div></td>
633 </tr>
634
635 </tbody>
636 </table>
637
638 </li>
639
640 <li class="frame">
641 <code>/home/tuttle/tmp/editable-test/django-trunk/django/views/decorators/cache.py</code> in <code>_wrapped_view_func</code>
642
643
644 <div class="context" id="c3047864956">
645
646 <ol start="62" class="pre-context" id="pre3047864956"><li onclick="toggle('pre3047864956', 'post3047864956')"></li><li onclick="toggle('pre3047864956', 'post3047864956')">def never_cache(view_func):</li><li onclick="toggle('pre3047864956', 'post3047864956')"> &quot;&quot;&quot;</li><li onclick="toggle('pre3047864956', 'post3047864956')"> Decorator that adds headers to a response so that it will</li><li onclick="toggle('pre3047864956', 'post3047864956')"> never be cached.</li><li onclick="toggle('pre3047864956', 'post3047864956')"> &quot;&quot;&quot;</li><li onclick="toggle('pre3047864956', 'post3047864956')"> def _wrapped_view_func(request, *args, **kwargs):</li></ol>
647
648 <ol start="69" class="context-line"><li onclick="toggle('pre3047864956', 'post3047864956')"> response = view_func(request, *args, **kwargs) <span>...</span></li></ol>
649
650 <ol start='70' class="post-context" id="post3047864956"><li onclick="toggle('pre3047864956', 'post3047864956')"> add_never_cache_headers(response)</li><li onclick="toggle('pre3047864956', 'post3047864956')"> return response</li><li onclick="toggle('pre3047864956', 'post3047864956')"> return wraps(view_func, assigned=available_attrs(view_func))(_wrapped_view_func)</li></ol>
651
652 </div>
653
654
655
656 <div class="commands">
657 <a href="#" onclick="return varToggle(this, '3047864956')"><span>&#x25b6;</span> Local vars</a>
658 </div>
659 <table class="vars" id="v3047864956">
660 <thead>
661 <tr>
662 <th>Variable</th>
663 <th>Value</th>
664 </tr>
665 </thead>
666 <tbody>
667
668 <tr>
669 <td>args</td>
670 <td class="code"><div>()</div></td>
671 </tr>
672
673 <tr>
674 <td>kwargs</td>
675 <td class="code"><div>{}</div></td>
676 </tr>
677
678 <tr>
679 <td>request</td>
680 <td class="code"><div>&lt;WSGIRequest
681GET:&lt;QueryDict: {u&#39;p&#39;: [u&#39;2&#39;]}&gt;,
682POST:&lt;QueryDict: {}&gt;,
683COOKIES:{&#39;__utma&#39;: &#39;1.1814913469.1283793829.1283793829.1283793829.1&#39;,
684 &#39;__utmz&#39;: &#39;1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
685 &#39;csrftoken&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
686 &#39;django_language&#39;: &#39;cs&#39;,
687 &#39;sessionid&#39;: &#39;8dfca394e11b853ff19f5ed43395f660&#39;},
688META:{&#39;CDPATH&#39;: &#39;.:~:~/data/Fotky/netrideny-archiv&#39;,
689 &#39;CONTENT_LENGTH&#39;: &#39;&#39;,
690 &#39;CONTENT_TYPE&#39;: &#39;text/plain&#39;,
691 &#39;CSRF_COOKIE&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
692 &#39;DBUS_SESSION_BUS_ADDRESS&#39;: &#39;unix:abstract=/tmp/dbus-Z8z73Ec0l5,guid=586bf253f65eb398760c4e8b4c965042&#39;,
693 &#39;DISPLAY&#39;: &#39;:0.0&#39;,
694 &#39;DJANGO_SETTINGS_MODULE&#39;: &#39;editabletest.settings&#39;,
695 &#39;EDITOR&#39;: &#39;joe&#39;,
696 &#39;EMAIL&#39;: &#39;tuttle@sandbox.cz&#39;,
697 &#39;FIGNORE&#39;: &#39;.o:~&#39;,
698 &#39;GATEWAY_INTERFACE&#39;: &#39;CGI/1.1&#39;,
699 &#39;GREP_COLOR&#39;: &#39;1;34&#39;,
700 &#39;GREP_OPTIONS&#39;: &#39;--color=auto&#39;,
701 &#39;HISTCONTROL&#39;: &#39;ignoreboth&#39;,
702 &#39;HISTFILE&#39;: &#39;/home/tuttle/.history_bash/bashhist.puk.20100919-204317.pid6014&#39;,
703 &#39;HISTSIZE&#39;: &#39;5000&#39;,
704 &#39;HOME&#39;: &#39;/home/tuttle&#39;,
705 &#39;HTTP_ACCEPT&#39;: &#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&#39;,
706 &#39;HTTP_ACCEPT_CHARSET&#39;: &#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;,
707 &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip,deflate&#39;,
708 &#39;HTTP_ACCEPT_LANGUAGE&#39;: &#39;cs,en-us;q=0.7,en;q=0.3&#39;,
709 &#39;HTTP_CONNECTION&#39;: &#39;keep-alive&#39;,
710 &#39;HTTP_COOKIE&#39;: &#39;csrftoken=b485bb44c526ebb351fafa8c64391d68; sessionid=8dfca394e11b853ff19f5ed43395f660; django_language=cs; __utma=1.1814913469.1283793829.1283793829.1283793829.1; __utmz=1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
711 &#39;HTTP_HOST&#39;: &#39;localhost:8081&#39;,
712 &#39;HTTP_IF_NONE_MATCH&#39;: &#39;&quot;700c83e328799a470e5aa858da708e3d&quot;&#39;,
713 &#39;HTTP_KEEP_ALIVE&#39;: &#39;115&#39;,
714 &#39;HTTP_USER_AGENT&#39;: &#39;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11pre) Gecko/20100916 Ubuntu/9.10 (karmic) Namoroka/3.6.11pre&#39;,
715 &#39;LANG&#39;: &#39;en_US.UTF-8&#39;,
716 &#39;LESS&#39;: &#39;-isMRnq#3~&#39;,
717 &#39;LESSCLOSE&#39;: &#39;/usr/bin/lesspipe %s %s&#39;,
718 &#39;LESSOPEN&#39;: &#39;| /usr/bin/lesspipe %s&#39;,
719 &#39;LOGNAME&#39;: &#39;tuttle&#39;,
720 &#39;OLDPWD&#39;: &#39;/home/tuttle/tmp/editable-test&#39;,
721 &#39;ORIGPHOTOS&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
722 &#39;ORIGROTDIR&#39;: &#39;/home/tuttle/tmp/origphotos&#39;,
723 &#39;ORIGSHRINKDIR&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
724 &#39;PATH&#39;: &#39;~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&#39;,
725 &#39;PATH_INFO&#39;: u&#39;/admin/edittest/mymodel/&#39;,
726 &#39;PHOTOTARGET&#39;: &#39;/home/tuttle/data/Fotky/netrideny-archiv&#39;,
727 &#39;PROMPT_COMMAND&#39;: &#39;history -a&#39;,
728 &#39;PS1&#39;: &#39;\\[\\e]0;-\\a\\]`rctmp=$?; [ $rctmp != 0 ] &amp;&amp; echo &quot;(rc=$rctmp) &quot;`\\[\\e[32m\\]\\D{%H%M%S} ${OLDPWD/#$HOME/~} \\[\\e[34m\\]\\h \\w\\[\\e[0m\\]\\n\\$ &#39;,
729 &#39;PWD&#39;: &#39;/home/tuttle/tmp/editable-test/editabletest&#39;,
730 &#39;PYTHONPATH&#39;: &#39;/home/tuttle/tmp/editable-test/django-trunk/&#39;,
731 &#39;QUERY_STRING&#39;: &#39;p=2&#39;,
732 &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
733 &#39;REMOTE_HOST&#39;: &#39;&#39;,
734 &#39;REQUEST_METHOD&#39;: &#39;GET&#39;,
735 &#39;RUN_MAIN&#39;: &#39;true&#39;,
736 &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
737 &#39;SERVER_NAME&#39;: &#39;localhost&#39;,
738 &#39;SERVER_PORT&#39;: &#39;8081&#39;,
739 &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.1&#39;,
740 &#39;SERVER_SOFTWARE&#39;: &#39;WSGIServer/0.1 Python/2.6.4&#39;,
741 &#39;SHELL&#39;: &#39;/bin/bash&#39;,
742 &#39;SHLVL&#39;: &#39;1&#39;,
743 &#39;SSH_AGENT_PID&#39;: &#39;4221&#39;,
744 &#39;SSH_AUTH_SOCK&#39;: &#39;/tmp/ssh-njGJdh4197/agent.4197&#39;,
745 &#39;TERM&#39;: &#39;xterm&#39;,
746 &#39;TZ&#39;: &#39;America/Chicago&#39;,
747 &#39;USER&#39;: &#39;tuttle&#39;,
748 &#39;VISUAL&#39;: &#39;joe&#39;,
749 &#39;WINDOWID&#39;: &#39;41943055&#39;,
750 &#39;WINDOWPATH&#39;: &#39;7&#39;,
751 &#39;XDG_SESSION_COOKIE&#39;: &#39;bc7ed7881ec8274b22e18fab4b1e7747-1284919362.717707-2026208578&#39;,
752 &#39;XTERM_LOCALE&#39;: &#39;en_US.UTF-8&#39;,
753 &#39;XTERM_SHELL&#39;: &#39;/bin/bash&#39;,
754 &#39;XTERM_VERSION&#39;: &#39;XTerm(243)&#39;,
755 &#39;_&#39;: &#39;./manage.py&#39;,
756 &#39;wsgi.errors&#39;: &lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39; at 0xb761a0c0&gt;,
757 &#39;wsgi.file_wrapper&#39;: &lt;class &#39;django.core.servers.basehttp.FileWrapper&#39;&gt;,
758 &#39;wsgi.input&#39;: &lt;socket._fileobject object at 0x984b56c&gt;,
759 &#39;wsgi.multiprocess&#39;: False,
760 &#39;wsgi.multithread&#39;: True,
761 &#39;wsgi.run_once&#39;: False,
762 &#39;wsgi.url_scheme&#39;: &#39;http&#39;,
763 &#39;wsgi.version&#39;: (1, 0)}&gt;</div></td>
764 </tr>
765
766 <tr>
767 <td>view_func</td>
768 <td class="code"><div>&lt;function inner at 0x98d0764&gt;</div></td>
769 </tr>
770
771 </tbody>
772 </table>
773
774 </li>
775
776 <li class="frame">
777 <code>/home/tuttle/tmp/editable-test/django-trunk/django/contrib/admin/sites.py</code> in <code>inner</code>
778
779
780 <div class="context" id="c3047864636">
781
782 <ol start="183" class="pre-context" id="pre3047864636"><li onclick="toggle('pre3047864636', 'post3047864636')"> By default, admin_views are marked non-cacheable using the</li><li onclick="toggle('pre3047864636', 'post3047864636')"> ``never_cache`` decorator. If the view can be safely cached, set</li><li onclick="toggle('pre3047864636', 'post3047864636')"> cacheable=True.</li><li onclick="toggle('pre3047864636', 'post3047864636')"> &quot;&quot;&quot;</li><li onclick="toggle('pre3047864636', 'post3047864636')"> def inner(request, *args, **kwargs):</li><li onclick="toggle('pre3047864636', 'post3047864636')"> if not self.has_permission(request):</li><li onclick="toggle('pre3047864636', 'post3047864636')"> return self.login(request)</li></ol>
783
784 <ol start="190" class="context-line"><li onclick="toggle('pre3047864636', 'post3047864636')"> return view(request, *args, **kwargs) <span>...</span></li></ol>
785
786 <ol start='191' class="post-context" id="post3047864636"><li onclick="toggle('pre3047864636', 'post3047864636')"> if not cacheable:</li><li onclick="toggle('pre3047864636', 'post3047864636')"> inner = never_cache(inner)</li><li onclick="toggle('pre3047864636', 'post3047864636')"> # We add csrf_protect here so this function can be used as a utility</li><li onclick="toggle('pre3047864636', 'post3047864636')"> # function for any view, without having to repeat &#39;csrf_protect&#39;.</li><li onclick="toggle('pre3047864636', 'post3047864636')"> if not getattr(view, &#39;csrf_exempt&#39;, False):</li><li onclick="toggle('pre3047864636', 'post3047864636')"> inner = csrf_protect(inner)</li></ol>
787
788 </div>
789
790
791
792 <div class="commands">
793 <a href="#" onclick="return varToggle(this, '3047864636')"><span>&#x25b6;</span> Local vars</a>
794 </div>
795 <table class="vars" id="v3047864636">
796 <thead>
797 <tr>
798 <th>Variable</th>
799 <th>Value</th>
800 </tr>
801 </thead>
802 <tbody>
803
804 <tr>
805 <td>args</td>
806 <td class="code"><div>()</div></td>
807 </tr>
808
809 <tr>
810 <td>kwargs</td>
811 <td class="code"><div>{}</div></td>
812 </tr>
813
814 <tr>
815 <td>request</td>
816 <td class="code"><div>&lt;WSGIRequest
817GET:&lt;QueryDict: {u&#39;p&#39;: [u&#39;2&#39;]}&gt;,
818POST:&lt;QueryDict: {}&gt;,
819COOKIES:{&#39;__utma&#39;: &#39;1.1814913469.1283793829.1283793829.1283793829.1&#39;,
820 &#39;__utmz&#39;: &#39;1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
821 &#39;csrftoken&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
822 &#39;django_language&#39;: &#39;cs&#39;,
823 &#39;sessionid&#39;: &#39;8dfca394e11b853ff19f5ed43395f660&#39;},
824META:{&#39;CDPATH&#39;: &#39;.:~:~/data/Fotky/netrideny-archiv&#39;,
825 &#39;CONTENT_LENGTH&#39;: &#39;&#39;,
826 &#39;CONTENT_TYPE&#39;: &#39;text/plain&#39;,
827 &#39;CSRF_COOKIE&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
828 &#39;DBUS_SESSION_BUS_ADDRESS&#39;: &#39;unix:abstract=/tmp/dbus-Z8z73Ec0l5,guid=586bf253f65eb398760c4e8b4c965042&#39;,
829 &#39;DISPLAY&#39;: &#39;:0.0&#39;,
830 &#39;DJANGO_SETTINGS_MODULE&#39;: &#39;editabletest.settings&#39;,
831 &#39;EDITOR&#39;: &#39;joe&#39;,
832 &#39;EMAIL&#39;: &#39;tuttle@sandbox.cz&#39;,
833 &#39;FIGNORE&#39;: &#39;.o:~&#39;,
834 &#39;GATEWAY_INTERFACE&#39;: &#39;CGI/1.1&#39;,
835 &#39;GREP_COLOR&#39;: &#39;1;34&#39;,
836 &#39;GREP_OPTIONS&#39;: &#39;--color=auto&#39;,
837 &#39;HISTCONTROL&#39;: &#39;ignoreboth&#39;,
838 &#39;HISTFILE&#39;: &#39;/home/tuttle/.history_bash/bashhist.puk.20100919-204317.pid6014&#39;,
839 &#39;HISTSIZE&#39;: &#39;5000&#39;,
840 &#39;HOME&#39;: &#39;/home/tuttle&#39;,
841 &#39;HTTP_ACCEPT&#39;: &#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&#39;,
842 &#39;HTTP_ACCEPT_CHARSET&#39;: &#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;,
843 &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip,deflate&#39;,
844 &#39;HTTP_ACCEPT_LANGUAGE&#39;: &#39;cs,en-us;q=0.7,en;q=0.3&#39;,
845 &#39;HTTP_CONNECTION&#39;: &#39;keep-alive&#39;,
846 &#39;HTTP_COOKIE&#39;: &#39;csrftoken=b485bb44c526ebb351fafa8c64391d68; sessionid=8dfca394e11b853ff19f5ed43395f660; django_language=cs; __utma=1.1814913469.1283793829.1283793829.1283793829.1; __utmz=1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
847 &#39;HTTP_HOST&#39;: &#39;localhost:8081&#39;,
848 &#39;HTTP_IF_NONE_MATCH&#39;: &#39;&quot;700c83e328799a470e5aa858da708e3d&quot;&#39;,
849 &#39;HTTP_KEEP_ALIVE&#39;: &#39;115&#39;,
850 &#39;HTTP_USER_AGENT&#39;: &#39;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11pre) Gecko/20100916 Ubuntu/9.10 (karmic) Namoroka/3.6.11pre&#39;,
851 &#39;LANG&#39;: &#39;en_US.UTF-8&#39;,
852 &#39;LESS&#39;: &#39;-isMRnq#3~&#39;,
853 &#39;LESSCLOSE&#39;: &#39;/usr/bin/lesspipe %s %s&#39;,
854 &#39;LESSOPEN&#39;: &#39;| /usr/bin/lesspipe %s&#39;,
855 &#39;LOGNAME&#39;: &#39;tuttle&#39;,
856 &#39;OLDPWD&#39;: &#39;/home/tuttle/tmp/editable-test&#39;,
857 &#39;ORIGPHOTOS&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
858 &#39;ORIGROTDIR&#39;: &#39;/home/tuttle/tmp/origphotos&#39;,
859 &#39;ORIGSHRINKDIR&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
860 &#39;PATH&#39;: &#39;~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&#39;,
861 &#39;PATH_INFO&#39;: u&#39;/admin/edittest/mymodel/&#39;,
862 &#39;PHOTOTARGET&#39;: &#39;/home/tuttle/data/Fotky/netrideny-archiv&#39;,
863 &#39;PROMPT_COMMAND&#39;: &#39;history -a&#39;,
864 &#39;PS1&#39;: &#39;\\[\\e]0;-\\a\\]`rctmp=$?; [ $rctmp != 0 ] &amp;&amp; echo &quot;(rc=$rctmp) &quot;`\\[\\e[32m\\]\\D{%H%M%S} ${OLDPWD/#$HOME/~} \\[\\e[34m\\]\\h \\w\\[\\e[0m\\]\\n\\$ &#39;,
865 &#39;PWD&#39;: &#39;/home/tuttle/tmp/editable-test/editabletest&#39;,
866 &#39;PYTHONPATH&#39;: &#39;/home/tuttle/tmp/editable-test/django-trunk/&#39;,
867 &#39;QUERY_STRING&#39;: &#39;p=2&#39;,
868 &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
869 &#39;REMOTE_HOST&#39;: &#39;&#39;,
870 &#39;REQUEST_METHOD&#39;: &#39;GET&#39;,
871 &#39;RUN_MAIN&#39;: &#39;true&#39;,
872 &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
873 &#39;SERVER_NAME&#39;: &#39;localhost&#39;,
874 &#39;SERVER_PORT&#39;: &#39;8081&#39;,
875 &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.1&#39;,
876 &#39;SERVER_SOFTWARE&#39;: &#39;WSGIServer/0.1 Python/2.6.4&#39;,
877 &#39;SHELL&#39;: &#39;/bin/bash&#39;,
878 &#39;SHLVL&#39;: &#39;1&#39;,
879 &#39;SSH_AGENT_PID&#39;: &#39;4221&#39;,
880 &#39;SSH_AUTH_SOCK&#39;: &#39;/tmp/ssh-njGJdh4197/agent.4197&#39;,
881 &#39;TERM&#39;: &#39;xterm&#39;,
882 &#39;TZ&#39;: &#39;America/Chicago&#39;,
883 &#39;USER&#39;: &#39;tuttle&#39;,
884 &#39;VISUAL&#39;: &#39;joe&#39;,
885 &#39;WINDOWID&#39;: &#39;41943055&#39;,
886 &#39;WINDOWPATH&#39;: &#39;7&#39;,
887 &#39;XDG_SESSION_COOKIE&#39;: &#39;bc7ed7881ec8274b22e18fab4b1e7747-1284919362.717707-2026208578&#39;,
888 &#39;XTERM_LOCALE&#39;: &#39;en_US.UTF-8&#39;,
889 &#39;XTERM_SHELL&#39;: &#39;/bin/bash&#39;,
890 &#39;XTERM_VERSION&#39;: &#39;XTerm(243)&#39;,
891 &#39;_&#39;: &#39;./manage.py&#39;,
892 &#39;wsgi.errors&#39;: &lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39; at 0xb761a0c0&gt;,
893 &#39;wsgi.file_wrapper&#39;: &lt;class &#39;django.core.servers.basehttp.FileWrapper&#39;&gt;,
894 &#39;wsgi.input&#39;: &lt;socket._fileobject object at 0x984b56c&gt;,
895 &#39;wsgi.multiprocess&#39;: False,
896 &#39;wsgi.multithread&#39;: True,
897 &#39;wsgi.run_once&#39;: False,
898 &#39;wsgi.url_scheme&#39;: &#39;http&#39;,
899 &#39;wsgi.version&#39;: (1, 0)}&gt;</div></td>
900 </tr>
901
902 <tr>
903 <td>self</td>
904 <td class="code"><div>&lt;django.contrib.admin.sites.AdminSite object at 0x96fca4c&gt;</div></td>
905 </tr>
906
907 <tr>
908 <td>view</td>
909 <td class="code"><div>&lt;bound method MyModelAdmin.changelist_view of &lt;editabletest.edittest.admin.MyModelAdmin object at 0x983dbac&gt;&gt;</div></td>
910 </tr>
911
912 </tbody>
913 </table>
914
915 </li>
916
917 <li class="frame">
918 <code>/home/tuttle/tmp/editable-test/django-trunk/django/utils/decorators.py</code> in <code>_wrapper</code>
919
920
921 <div class="context" id="c3047864476">
922
923 <ol start="14" class="pre-context" id="pre3047864476"><li onclick="toggle('pre3047864476', 'post3047864476')"> def _dec(func):</li><li onclick="toggle('pre3047864476', 'post3047864476')"> def _wrapper(self, *args, **kwargs):</li><li onclick="toggle('pre3047864476', 'post3047864476')"> def bound_func(*args2, **kwargs2):</li><li onclick="toggle('pre3047864476', 'post3047864476')"> return func(self, *args2, **kwargs2)</li><li onclick="toggle('pre3047864476', 'post3047864476')"> # bound_func has the signature that &#39;decorator&#39; expects i.e. no</li><li onclick="toggle('pre3047864476', 'post3047864476')"> # &#39;self&#39; argument, but it is a closure over self so it can call</li><li onclick="toggle('pre3047864476', 'post3047864476')"> # &#39;func&#39; correctly.</li></ol>
924
925 <ol start="21" class="context-line"><li onclick="toggle('pre3047864476', 'post3047864476')"> return decorator(bound_func)(*args, **kwargs) <span>...</span></li></ol>
926
927 <ol start='22' class="post-context" id="post3047864476"><li onclick="toggle('pre3047864476', 'post3047864476')"> return wraps(func)(_wrapper)</li><li onclick="toggle('pre3047864476', 'post3047864476')"> update_wrapper(_dec, decorator)</li><li onclick="toggle('pre3047864476', 'post3047864476')"> # Change the name to aid debugging.</li><li onclick="toggle('pre3047864476', 'post3047864476')"> _dec.__name__ = &#39;method_decorator(%s)&#39; % decorator.__name__</li><li onclick="toggle('pre3047864476', 'post3047864476')"> return _dec</li><li onclick="toggle('pre3047864476', 'post3047864476')"></li></ol>
928
929 </div>
930
931
932
933 <div class="commands">
934 <a href="#" onclick="return varToggle(this, '3047864476')"><span>&#x25b6;</span> Local vars</a>
935 </div>
936 <table class="vars" id="v3047864476">
937 <thead>
938 <tr>
939 <th>Variable</th>
940 <th>Value</th>
941 </tr>
942 </thead>
943 <tbody>
944
945 <tr>
946 <td>args</td>
947 <td class="code"><div>(&lt;WSGIRequest
948GET:&lt;QueryDict: {u&#39;p&#39;: [u&#39;2&#39;]}&gt;,
949POST:&lt;QueryDict: {}&gt;,
950COOKIES:{&#39;__utma&#39;: &#39;1.1814913469.1283793829.1283793829.1283793829.1&#39;,
951 &#39;__utmz&#39;: &#39;1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
952 &#39;csrftoken&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
953 &#39;django_language&#39;: &#39;cs&#39;,
954 &#39;sessionid&#39;: &#39;8dfca394e11b853ff19f5ed43395f660&#39;},
955META:{&#39;CDPATH&#39;: &#39;.:~:~/data/Fotky/netrideny-archiv&#39;,
956 &#39;CONTENT_LENGTH&#39;: &#39;&#39;,
957 &#39;CONTENT_TYPE&#39;: &#39;text/plain&#39;,
958 &#39;CSRF_COOKIE&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
959 &#39;DBUS_SESSION_BUS_ADDRESS&#39;: &#39;unix:abstract=/tmp/dbus-Z8z73Ec0l5,guid=586bf253f65eb398760c4e8b4c965042&#39;,
960 &#39;DISPLAY&#39;: &#39;:0.0&#39;,
961 &#39;DJANGO_SETTINGS_MODULE&#39;: &#39;editabletest.settings&#39;,
962 &#39;EDITOR&#39;: &#39;joe&#39;,
963 &#39;EMAIL&#39;: &#39;tuttle@sandbox.cz&#39;,
964 &#39;FIGNORE&#39;: &#39;.o:~&#39;,
965 &#39;GATEWAY_INTERFACE&#39;: &#39;CGI/1.1&#39;,
966 &#39;GREP_COLOR&#39;: &#39;1;34&#39;,
967 &#39;GREP_OPTIONS&#39;: &#39;--color=auto&#39;,
968 &#39;HISTCONTROL&#39;: &#39;ignoreboth&#39;,
969 &#39;HISTFILE&#39;: &#39;/home/tuttle/.history_bash/bashhist.puk.20100919-204317.pid6014&#39;,
970 &#39;HISTSIZE&#39;: &#39;5000&#39;,
971 &#39;HOME&#39;: &#39;/home/tuttle&#39;,
972 &#39;HTTP_ACCEPT&#39;: &#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&#39;,
973 &#39;HTTP_ACCEPT_CHARSET&#39;: &#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;,
974 &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip,deflate&#39;,
975 &#39;HTTP_ACCEPT_LANGUAGE&#39;: &#39;cs,en-us;q=0.7,en;q=0.3&#39;,
976 &#39;HTTP_CONNECTION&#39;: &#39;keep-alive&#39;,
977 &#39;HTTP_COOKIE&#39;: &#39;csrftoken=b485bb44c526ebb351fafa8c64391d68; sessionid=8dfca394e11b853ff19f5ed43395f660; django_language=cs; __utma=1.1814913469.1283793829.1283793829.1283793829.1; __utmz=1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
978 &#39;HTTP_HOST&#39;: &#39;localhost:8081&#39;,
979 &#39;HTTP_IF_NONE_MATCH&#39;: &#39;&quot;700c83e328799a470e5aa858da708e3d&quot;&#39;,
980 &#39;HTTP_KEEP_ALIVE&#39;: &#39;115&#39;,
981 &#39;HTTP_USER_AGENT&#39;: &#39;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11pre) Gecko/20100916 Ubuntu/9.10 (karmic) Namoroka/3.6.11pre&#39;,
982 &#39;LANG&#39;: &#39;en_US.UTF-8&#39;,
983 &#39;LESS&#39;: &#39;-isMRnq#3~&#39;,
984 &#39;LESSCLOSE&#39;: &#39;/usr/bin/lesspipe %s %s&#39;,
985 &#39;LESSOPEN&#39;: &#39;| /usr/bin/lesspipe %s&#39;,
986 &#39;LOGNAME&#39;: &#39;tuttle&#39;,
987 &#39;OLDPWD&#39;: &#39;/home/tuttle/tmp/editable-test&#39;,
988 &#39;ORIGPHOTOS&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
989 &#39;ORIGROTDIR&#39;: &#39;/home/tuttle/tmp/origphotos&#39;,
990 &#39;ORIGSHRINKDIR&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
991 &#39;PATH&#39;: &#39;~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&#39;,
992 &#39;PATH_INFO&#39;: u&#39;/admin/edittest/mymodel/&#39;,
993 &#39;PHOTOTARGET&#39;: &#39;/home/tuttle/data/Fotky/netrideny-archiv&#39;,
994 &#39;PROMPT_COMMAND&#39;: &#39;history -a&#39;,
995 &#39;PS1&#39;: &#39;\\[\\e]0;-\\a\\]`rctmp=$?; [ $rctmp != 0 ] &amp;&amp; echo &quot;(rc=$rctmp) &quot;`\\[\\e[32m\\]\\D{%H%M%S} ${OLDPWD/#$HOME/~} \\[\\e[34m\\]\\h \\w\\[\\e[0m\\]\\n\\$ &#39;,
996 &#39;PWD&#39;: &#39;/home/tuttle/tmp/editable-test/editabletest&#39;,
997 &#39;PYTHONPATH&#39;: &#39;/home/tuttle/tmp/editable-test/django-trunk/&#39;,
998 &#39;QUERY_STRING&#39;: &#39;p=2&#39;,
999 &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
1000 &#39;REMOTE_HOST&#39;: &#39;&#39;,
1001 &#39;REQUEST_METHOD&#39;: &#39;GET&#39;,
1002 &#39;RUN_MAIN&#39;: &#39;true&#39;,
1003 &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
1004 &#39;SERVER_NAME&#39;: &#39;localhost&#39;,
1005 &#39;SERVER_PORT&#39;: &#39;8081&#39;,
1006 &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.1&#39;,
1007 &#39;SERVER_SOFTWARE&#39;: &#39;WSGIServer/0.1 Python/2.6.4&#39;,
1008 &#39;SHELL&#39;: &#39;/bin/bash&#39;,
1009 &#39;SHLVL&#39;: &#39;1&#39;,
1010 &#39;SSH_AGENT_PID&#39;: &#39;4221&#39;,
1011 &#39;SSH_AUTH_SOCK&#39;: &#39;/tmp/ssh-njGJdh4197/agent.4197&#39;,
1012 &#39;TERM&#39;: &#39;xterm&#39;,
1013 &#39;TZ&#39;: &#39;America/Chicago&#39;,
1014 &#39;USER&#39;: &#39;tuttle&#39;,
1015 &#39;VISUAL&#39;: &#39;joe&#39;,
1016 &#39;WINDOWID&#39;: &#39;41943055&#39;,
1017 &#39;WINDOWPATH&#39;: &#39;7&#39;,
1018 &#39;XDG_SESSION_COOKIE&#39;: &#39;bc7ed7881ec8274b22e18fab4b1e7747-1284919362.717707-2026208578&#39;,
1019 &#39;XTERM_LOCALE&#39;: &#39;en_US.UTF-8&#39;,
1020 &#39;XTERM_SHELL&#39;: &#39;/bin/bash&#39;,
1021 &#39;XTERM_VERSION&#39;: &#39;XTerm(243)&#39;,
1022 &#39;_&#39;: &#39;./manage.py&#39;,
1023 &#39;wsgi.errors&#39;: &lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39; at 0xb761a0c0&gt;,
1024 &#39;wsgi.file_wrapper&#39;: &lt;class &#39;django.core.servers.basehttp.FileWrapper&#39;&gt;,
1025 &#39;wsgi.input&#39;: &lt;socket._fileobject object at 0x984b56c&gt;,
1026 &#39;wsgi.multiprocess&#39;: False,
1027 &#39;wsgi.multithread&#39;: True,
1028 &#39;wsgi.run_once&#39;: False,
1029 &#39;wsgi.url_scheme&#39;: &#39;http&#39;,
1030 &#39;wsgi.version&#39;: (1, 0)}&gt;,)</div></td>
1031 </tr>
1032
1033 <tr>
1034 <td>bound_func</td>
1035 <td class="code"><div>&lt;function bound_func at 0x98d0684&gt;</div></td>
1036 </tr>
1037
1038 <tr>
1039 <td>decorator</td>
1040 <td class="code"><div>&lt;function csrf_protect at 0x96d0224&gt;</div></td>
1041 </tr>
1042
1043 <tr>
1044 <td>func</td>
1045 <td class="code"><div>&lt;function changelist_view at 0x96f7cdc&gt;</div></td>
1046 </tr>
1047
1048 <tr>
1049 <td>kwargs</td>
1050 <td class="code"><div>{}</div></td>
1051 </tr>
1052
1053 <tr>
1054 <td>self</td>
1055 <td class="code"><div>&lt;editabletest.edittest.admin.MyModelAdmin object at 0x983dbac&gt;</div></td>
1056 </tr>
1057
1058 </tbody>
1059 </table>
1060
1061 </li>
1062
1063 <li class="frame">
1064 <code>/home/tuttle/tmp/editable-test/django-trunk/django/utils/decorators.py</code> in <code>_wrapped_view</code>
1065
1066
1067 <div class="context" id="c3047864036">
1068
1069 <ol start="69" class="pre-context" id="pre3047864036"><li onclick="toggle('pre3047864036', 'post3047864036')"> if result is not None:</li><li onclick="toggle('pre3047864036', 'post3047864036')"> return result</li><li onclick="toggle('pre3047864036', 'post3047864036')"> if hasattr(middleware, &#39;process_view&#39;):</li><li onclick="toggle('pre3047864036', 'post3047864036')"> result = middleware.process_view(request, view_func, args, kwargs)</li><li onclick="toggle('pre3047864036', 'post3047864036')"> if result is not None:</li><li onclick="toggle('pre3047864036', 'post3047864036')"> return result</li><li onclick="toggle('pre3047864036', 'post3047864036')"> try:</li></ol>
1070
1071 <ol start="76" class="context-line"><li onclick="toggle('pre3047864036', 'post3047864036')"> response = view_func(request, *args, **kwargs) <span>...</span></li></ol>
1072
1073 <ol start='77' class="post-context" id="post3047864036"><li onclick="toggle('pre3047864036', 'post3047864036')"> except Exception, e:</li><li onclick="toggle('pre3047864036', 'post3047864036')"> if hasattr(middleware, &#39;process_exception&#39;):</li><li onclick="toggle('pre3047864036', 'post3047864036')"> result = middleware.process_exception(request, e)</li><li onclick="toggle('pre3047864036', 'post3047864036')"> if result is not None:</li><li onclick="toggle('pre3047864036', 'post3047864036')"> return result</li><li onclick="toggle('pre3047864036', 'post3047864036')"> raise</li></ol>
1074
1075 </div>
1076
1077
1078
1079 <div class="commands">
1080 <a href="#" onclick="return varToggle(this, '3047864036')"><span>&#x25b6;</span> Local vars</a>
1081 </div>
1082 <table class="vars" id="v3047864036">
1083 <thead>
1084 <tr>
1085 <th>Variable</th>
1086 <th>Value</th>
1087 </tr>
1088 </thead>
1089 <tbody>
1090
1091 <tr>
1092 <td>args</td>
1093 <td class="code"><div>()</div></td>
1094 </tr>
1095
1096 <tr>
1097 <td>e</td>
1098 <td class="code"><div>AttributeError(&quot;&#39;tuple&#39; object has no attribute &#39;ordered&#39;&quot;,)</div></td>
1099 </tr>
1100
1101 <tr>
1102 <td>kwargs</td>
1103 <td class="code"><div>{}</div></td>
1104 </tr>
1105
1106 <tr>
1107 <td>middleware</td>
1108 <td class="code"><div>&lt;django.middleware.csrf.CsrfViewMiddleware object at 0x96ceb6c&gt;</div></td>
1109 </tr>
1110
1111 <tr>
1112 <td>request</td>
1113 <td class="code"><div>&lt;WSGIRequest
1114GET:&lt;QueryDict: {u&#39;p&#39;: [u&#39;2&#39;]}&gt;,
1115POST:&lt;QueryDict: {}&gt;,
1116COOKIES:{&#39;__utma&#39;: &#39;1.1814913469.1283793829.1283793829.1283793829.1&#39;,
1117 &#39;__utmz&#39;: &#39;1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
1118 &#39;csrftoken&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
1119 &#39;django_language&#39;: &#39;cs&#39;,
1120 &#39;sessionid&#39;: &#39;8dfca394e11b853ff19f5ed43395f660&#39;},
1121META:{&#39;CDPATH&#39;: &#39;.:~:~/data/Fotky/netrideny-archiv&#39;,
1122 &#39;CONTENT_LENGTH&#39;: &#39;&#39;,
1123 &#39;CONTENT_TYPE&#39;: &#39;text/plain&#39;,
1124 &#39;CSRF_COOKIE&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
1125 &#39;DBUS_SESSION_BUS_ADDRESS&#39;: &#39;unix:abstract=/tmp/dbus-Z8z73Ec0l5,guid=586bf253f65eb398760c4e8b4c965042&#39;,
1126 &#39;DISPLAY&#39;: &#39;:0.0&#39;,
1127 &#39;DJANGO_SETTINGS_MODULE&#39;: &#39;editabletest.settings&#39;,
1128 &#39;EDITOR&#39;: &#39;joe&#39;,
1129 &#39;EMAIL&#39;: &#39;tuttle@sandbox.cz&#39;,
1130 &#39;FIGNORE&#39;: &#39;.o:~&#39;,
1131 &#39;GATEWAY_INTERFACE&#39;: &#39;CGI/1.1&#39;,
1132 &#39;GREP_COLOR&#39;: &#39;1;34&#39;,
1133 &#39;GREP_OPTIONS&#39;: &#39;--color=auto&#39;,
1134 &#39;HISTCONTROL&#39;: &#39;ignoreboth&#39;,
1135 &#39;HISTFILE&#39;: &#39;/home/tuttle/.history_bash/bashhist.puk.20100919-204317.pid6014&#39;,
1136 &#39;HISTSIZE&#39;: &#39;5000&#39;,
1137 &#39;HOME&#39;: &#39;/home/tuttle&#39;,
1138 &#39;HTTP_ACCEPT&#39;: &#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&#39;,
1139 &#39;HTTP_ACCEPT_CHARSET&#39;: &#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;,
1140 &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip,deflate&#39;,
1141 &#39;HTTP_ACCEPT_LANGUAGE&#39;: &#39;cs,en-us;q=0.7,en;q=0.3&#39;,
1142 &#39;HTTP_CONNECTION&#39;: &#39;keep-alive&#39;,
1143 &#39;HTTP_COOKIE&#39;: &#39;csrftoken=b485bb44c526ebb351fafa8c64391d68; sessionid=8dfca394e11b853ff19f5ed43395f660; django_language=cs; __utma=1.1814913469.1283793829.1283793829.1283793829.1; __utmz=1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
1144 &#39;HTTP_HOST&#39;: &#39;localhost:8081&#39;,
1145 &#39;HTTP_IF_NONE_MATCH&#39;: &#39;&quot;700c83e328799a470e5aa858da708e3d&quot;&#39;,
1146 &#39;HTTP_KEEP_ALIVE&#39;: &#39;115&#39;,
1147 &#39;HTTP_USER_AGENT&#39;: &#39;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11pre) Gecko/20100916 Ubuntu/9.10 (karmic) Namoroka/3.6.11pre&#39;,
1148 &#39;LANG&#39;: &#39;en_US.UTF-8&#39;,
1149 &#39;LESS&#39;: &#39;-isMRnq#3~&#39;,
1150 &#39;LESSCLOSE&#39;: &#39;/usr/bin/lesspipe %s %s&#39;,
1151 &#39;LESSOPEN&#39;: &#39;| /usr/bin/lesspipe %s&#39;,
1152 &#39;LOGNAME&#39;: &#39;tuttle&#39;,
1153 &#39;OLDPWD&#39;: &#39;/home/tuttle/tmp/editable-test&#39;,
1154 &#39;ORIGPHOTOS&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
1155 &#39;ORIGROTDIR&#39;: &#39;/home/tuttle/tmp/origphotos&#39;,
1156 &#39;ORIGSHRINKDIR&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
1157 &#39;PATH&#39;: &#39;~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&#39;,
1158 &#39;PATH_INFO&#39;: u&#39;/admin/edittest/mymodel/&#39;,
1159 &#39;PHOTOTARGET&#39;: &#39;/home/tuttle/data/Fotky/netrideny-archiv&#39;,
1160 &#39;PROMPT_COMMAND&#39;: &#39;history -a&#39;,
1161 &#39;PS1&#39;: &#39;\\[\\e]0;-\\a\\]`rctmp=$?; [ $rctmp != 0 ] &amp;&amp; echo &quot;(rc=$rctmp) &quot;`\\[\\e[32m\\]\\D{%H%M%S} ${OLDPWD/#$HOME/~} \\[\\e[34m\\]\\h \\w\\[\\e[0m\\]\\n\\$ &#39;,
1162 &#39;PWD&#39;: &#39;/home/tuttle/tmp/editable-test/editabletest&#39;,
1163 &#39;PYTHONPATH&#39;: &#39;/home/tuttle/tmp/editable-test/django-trunk/&#39;,
1164 &#39;QUERY_STRING&#39;: &#39;p=2&#39;,
1165 &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
1166 &#39;REMOTE_HOST&#39;: &#39;&#39;,
1167 &#39;REQUEST_METHOD&#39;: &#39;GET&#39;,
1168 &#39;RUN_MAIN&#39;: &#39;true&#39;,
1169 &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
1170 &#39;SERVER_NAME&#39;: &#39;localhost&#39;,
1171 &#39;SERVER_PORT&#39;: &#39;8081&#39;,
1172 &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.1&#39;,
1173 &#39;SERVER_SOFTWARE&#39;: &#39;WSGIServer/0.1 Python/2.6.4&#39;,
1174 &#39;SHELL&#39;: &#39;/bin/bash&#39;,
1175 &#39;SHLVL&#39;: &#39;1&#39;,
1176 &#39;SSH_AGENT_PID&#39;: &#39;4221&#39;,
1177 &#39;SSH_AUTH_SOCK&#39;: &#39;/tmp/ssh-njGJdh4197/agent.4197&#39;,
1178 &#39;TERM&#39;: &#39;xterm&#39;,
1179 &#39;TZ&#39;: &#39;America/Chicago&#39;,
1180 &#39;USER&#39;: &#39;tuttle&#39;,
1181 &#39;VISUAL&#39;: &#39;joe&#39;,
1182 &#39;WINDOWID&#39;: &#39;41943055&#39;,
1183 &#39;WINDOWPATH&#39;: &#39;7&#39;,
1184 &#39;XDG_SESSION_COOKIE&#39;: &#39;bc7ed7881ec8274b22e18fab4b1e7747-1284919362.717707-2026208578&#39;,
1185 &#39;XTERM_LOCALE&#39;: &#39;en_US.UTF-8&#39;,
1186 &#39;XTERM_SHELL&#39;: &#39;/bin/bash&#39;,
1187 &#39;XTERM_VERSION&#39;: &#39;XTerm(243)&#39;,
1188 &#39;_&#39;: &#39;./manage.py&#39;,
1189 &#39;wsgi.errors&#39;: &lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39; at 0xb761a0c0&gt;,
1190 &#39;wsgi.file_wrapper&#39;: &lt;class &#39;django.core.servers.basehttp.FileWrapper&#39;&gt;,
1191 &#39;wsgi.input&#39;: &lt;socket._fileobject object at 0x984b56c&gt;,
1192 &#39;wsgi.multiprocess&#39;: False,
1193 &#39;wsgi.multithread&#39;: True,
1194 &#39;wsgi.run_once&#39;: False,
1195 &#39;wsgi.url_scheme&#39;: &#39;http&#39;,
1196 &#39;wsgi.version&#39;: (1, 0)}&gt;</div></td>
1197 </tr>
1198
1199 <tr>
1200 <td>result</td>
1201 <td class="code"><div>None</div></td>
1202 </tr>
1203
1204 <tr>
1205 <td>view_func</td>
1206 <td class="code"><div>&lt;function bound_func at 0x98d0684&gt;</div></td>
1207 </tr>
1208
1209 </tbody>
1210 </table>
1211
1212 </li>
1213
1214 <li class="frame">
1215 <code>/home/tuttle/tmp/editable-test/django-trunk/django/utils/decorators.py</code> in <code>bound_func</code>
1216
1217
1218 <div class="context" id="c3047864996">
1219
1220 <ol start="10" class="pre-context" id="pre3047864996"><li onclick="toggle('pre3047864996', 'post3047864996')">def method_decorator(decorator):</li><li onclick="toggle('pre3047864996', 'post3047864996')"> &quot;&quot;&quot;</li><li onclick="toggle('pre3047864996', 'post3047864996')"> Converts a function decorator into a method decorator</li><li onclick="toggle('pre3047864996', 'post3047864996')"> &quot;&quot;&quot;</li><li onclick="toggle('pre3047864996', 'post3047864996')"> def _dec(func):</li><li onclick="toggle('pre3047864996', 'post3047864996')"> def _wrapper(self, *args, **kwargs):</li><li onclick="toggle('pre3047864996', 'post3047864996')"> def bound_func(*args2, **kwargs2):</li></ol>
1221
1222 <ol start="17" class="context-line"><li onclick="toggle('pre3047864996', 'post3047864996')"> return func(self, *args2, **kwargs2) <span>...</span></li></ol>
1223
1224 <ol start='18' class="post-context" id="post3047864996"><li onclick="toggle('pre3047864996', 'post3047864996')"> # bound_func has the signature that &#39;decorator&#39; expects i.e. no</li><li onclick="toggle('pre3047864996', 'post3047864996')"> # &#39;self&#39; argument, but it is a closure over self so it can call</li><li onclick="toggle('pre3047864996', 'post3047864996')"> # &#39;func&#39; correctly.</li><li onclick="toggle('pre3047864996', 'post3047864996')"> return decorator(bound_func)(*args, **kwargs)</li><li onclick="toggle('pre3047864996', 'post3047864996')"> return wraps(func)(_wrapper)</li><li onclick="toggle('pre3047864996', 'post3047864996')"> update_wrapper(_dec, decorator)</li></ol>
1225
1226 </div>
1227
1228
1229
1230 <div class="commands">
1231 <a href="#" onclick="return varToggle(this, '3047864996')"><span>&#x25b6;</span> Local vars</a>
1232 </div>
1233 <table class="vars" id="v3047864996">
1234 <thead>
1235 <tr>
1236 <th>Variable</th>
1237 <th>Value</th>
1238 </tr>
1239 </thead>
1240 <tbody>
1241
1242 <tr>
1243 <td>args2</td>
1244 <td class="code"><div>(&lt;WSGIRequest
1245GET:&lt;QueryDict: {u&#39;p&#39;: [u&#39;2&#39;]}&gt;,
1246POST:&lt;QueryDict: {}&gt;,
1247COOKIES:{&#39;__utma&#39;: &#39;1.1814913469.1283793829.1283793829.1283793829.1&#39;,
1248 &#39;__utmz&#39;: &#39;1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
1249 &#39;csrftoken&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
1250 &#39;django_language&#39;: &#39;cs&#39;,
1251 &#39;sessionid&#39;: &#39;8dfca394e11b853ff19f5ed43395f660&#39;},
1252META:{&#39;CDPATH&#39;: &#39;.:~:~/data/Fotky/netrideny-archiv&#39;,
1253 &#39;CONTENT_LENGTH&#39;: &#39;&#39;,
1254 &#39;CONTENT_TYPE&#39;: &#39;text/plain&#39;,
1255 &#39;CSRF_COOKIE&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
1256 &#39;DBUS_SESSION_BUS_ADDRESS&#39;: &#39;unix:abstract=/tmp/dbus-Z8z73Ec0l5,guid=586bf253f65eb398760c4e8b4c965042&#39;,
1257 &#39;DISPLAY&#39;: &#39;:0.0&#39;,
1258 &#39;DJANGO_SETTINGS_MODULE&#39;: &#39;editabletest.settings&#39;,
1259 &#39;EDITOR&#39;: &#39;joe&#39;,
1260 &#39;EMAIL&#39;: &#39;tuttle@sandbox.cz&#39;,
1261 &#39;FIGNORE&#39;: &#39;.o:~&#39;,
1262 &#39;GATEWAY_INTERFACE&#39;: &#39;CGI/1.1&#39;,
1263 &#39;GREP_COLOR&#39;: &#39;1;34&#39;,
1264 &#39;GREP_OPTIONS&#39;: &#39;--color=auto&#39;,
1265 &#39;HISTCONTROL&#39;: &#39;ignoreboth&#39;,
1266 &#39;HISTFILE&#39;: &#39;/home/tuttle/.history_bash/bashhist.puk.20100919-204317.pid6014&#39;,
1267 &#39;HISTSIZE&#39;: &#39;5000&#39;,
1268 &#39;HOME&#39;: &#39;/home/tuttle&#39;,
1269 &#39;HTTP_ACCEPT&#39;: &#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&#39;,
1270 &#39;HTTP_ACCEPT_CHARSET&#39;: &#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;,
1271 &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip,deflate&#39;,
1272 &#39;HTTP_ACCEPT_LANGUAGE&#39;: &#39;cs,en-us;q=0.7,en;q=0.3&#39;,
1273 &#39;HTTP_CONNECTION&#39;: &#39;keep-alive&#39;,
1274 &#39;HTTP_COOKIE&#39;: &#39;csrftoken=b485bb44c526ebb351fafa8c64391d68; sessionid=8dfca394e11b853ff19f5ed43395f660; django_language=cs; __utma=1.1814913469.1283793829.1283793829.1283793829.1; __utmz=1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
1275 &#39;HTTP_HOST&#39;: &#39;localhost:8081&#39;,
1276 &#39;HTTP_IF_NONE_MATCH&#39;: &#39;&quot;700c83e328799a470e5aa858da708e3d&quot;&#39;,
1277 &#39;HTTP_KEEP_ALIVE&#39;: &#39;115&#39;,
1278 &#39;HTTP_USER_AGENT&#39;: &#39;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11pre) Gecko/20100916 Ubuntu/9.10 (karmic) Namoroka/3.6.11pre&#39;,
1279 &#39;LANG&#39;: &#39;en_US.UTF-8&#39;,
1280 &#39;LESS&#39;: &#39;-isMRnq#3~&#39;,
1281 &#39;LESSCLOSE&#39;: &#39;/usr/bin/lesspipe %s %s&#39;,
1282 &#39;LESSOPEN&#39;: &#39;| /usr/bin/lesspipe %s&#39;,
1283 &#39;LOGNAME&#39;: &#39;tuttle&#39;,
1284 &#39;OLDPWD&#39;: &#39;/home/tuttle/tmp/editable-test&#39;,
1285 &#39;ORIGPHOTOS&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
1286 &#39;ORIGROTDIR&#39;: &#39;/home/tuttle/tmp/origphotos&#39;,
1287 &#39;ORIGSHRINKDIR&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
1288 &#39;PATH&#39;: &#39;~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&#39;,
1289 &#39;PATH_INFO&#39;: u&#39;/admin/edittest/mymodel/&#39;,
1290 &#39;PHOTOTARGET&#39;: &#39;/home/tuttle/data/Fotky/netrideny-archiv&#39;,
1291 &#39;PROMPT_COMMAND&#39;: &#39;history -a&#39;,
1292 &#39;PS1&#39;: &#39;\\[\\e]0;-\\a\\]`rctmp=$?; [ $rctmp != 0 ] &amp;&amp; echo &quot;(rc=$rctmp) &quot;`\\[\\e[32m\\]\\D{%H%M%S} ${OLDPWD/#$HOME/~} \\[\\e[34m\\]\\h \\w\\[\\e[0m\\]\\n\\$ &#39;,
1293 &#39;PWD&#39;: &#39;/home/tuttle/tmp/editable-test/editabletest&#39;,
1294 &#39;PYTHONPATH&#39;: &#39;/home/tuttle/tmp/editable-test/django-trunk/&#39;,
1295 &#39;QUERY_STRING&#39;: &#39;p=2&#39;,
1296 &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
1297 &#39;REMOTE_HOST&#39;: &#39;&#39;,
1298 &#39;REQUEST_METHOD&#39;: &#39;GET&#39;,
1299 &#39;RUN_MAIN&#39;: &#39;true&#39;,
1300 &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
1301 &#39;SERVER_NAME&#39;: &#39;localhost&#39;,
1302 &#39;SERVER_PORT&#39;: &#39;8081&#39;,
1303 &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.1&#39;,
1304 &#39;SERVER_SOFTWARE&#39;: &#39;WSGIServer/0.1 Python/2.6.4&#39;,
1305 &#39;SHELL&#39;: &#39;/bin/bash&#39;,
1306 &#39;SHLVL&#39;: &#39;1&#39;,
1307 &#39;SSH_AGENT_PID&#39;: &#39;4221&#39;,
1308 &#39;SSH_AUTH_SOCK&#39;: &#39;/tmp/ssh-njGJdh4197/agent.4197&#39;,
1309 &#39;TERM&#39;: &#39;xterm&#39;,
1310 &#39;TZ&#39;: &#39;America/Chicago&#39;,
1311 &#39;USER&#39;: &#39;tuttle&#39;,
1312 &#39;VISUAL&#39;: &#39;joe&#39;,
1313 &#39;WINDOWID&#39;: &#39;41943055&#39;,
1314 &#39;WINDOWPATH&#39;: &#39;7&#39;,
1315 &#39;XDG_SESSION_COOKIE&#39;: &#39;bc7ed7881ec8274b22e18fab4b1e7747-1284919362.717707-2026208578&#39;,
1316 &#39;XTERM_LOCALE&#39;: &#39;en_US.UTF-8&#39;,
1317 &#39;XTERM_SHELL&#39;: &#39;/bin/bash&#39;,
1318 &#39;XTERM_VERSION&#39;: &#39;XTerm(243)&#39;,
1319 &#39;_&#39;: &#39;./manage.py&#39;,
1320 &#39;wsgi.errors&#39;: &lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39; at 0xb761a0c0&gt;,
1321 &#39;wsgi.file_wrapper&#39;: &lt;class &#39;django.core.servers.basehttp.FileWrapper&#39;&gt;,
1322 &#39;wsgi.input&#39;: &lt;socket._fileobject object at 0x984b56c&gt;,
1323 &#39;wsgi.multiprocess&#39;: False,
1324 &#39;wsgi.multithread&#39;: True,
1325 &#39;wsgi.run_once&#39;: False,
1326 &#39;wsgi.url_scheme&#39;: &#39;http&#39;,
1327 &#39;wsgi.version&#39;: (1, 0)}&gt;,)</div></td>
1328 </tr>
1329
1330 <tr>
1331 <td>func</td>
1332 <td class="code"><div>&lt;function changelist_view at 0x96f7cdc&gt;</div></td>
1333 </tr>
1334
1335 <tr>
1336 <td>kwargs2</td>
1337 <td class="code"><div>{}</div></td>
1338 </tr>
1339
1340 <tr>
1341 <td>self</td>
1342 <td class="code"><div>&lt;editabletest.edittest.admin.MyModelAdmin object at 0x983dbac&gt;</div></td>
1343 </tr>
1344
1345 </tbody>
1346 </table>
1347
1348 </li>
1349
1350 <li class="frame">
1351 <code>/home/tuttle/tmp/editable-test/django-trunk/django/contrib/admin/options.py</code> in <code>changelist_view</code>
1352
1353
1354 <div class="context" id="c3047864236">
1355
1356 <ol start="1050" class="pre-context" id="pre3047864236"><li onclick="toggle('pre3047864236', 'post3047864236')"> self.message_user(request, msg)</li><li onclick="toggle('pre3047864236', 'post3047864236')"></li><li onclick="toggle('pre3047864236', 'post3047864236')"> return HttpResponseRedirect(request.get_full_path())</li><li onclick="toggle('pre3047864236', 'post3047864236')"></li><li onclick="toggle('pre3047864236', 'post3047864236')"> # Handle GET -- construct a formset for display.</li><li onclick="toggle('pre3047864236', 'post3047864236')"> elif self.list_editable:</li><li onclick="toggle('pre3047864236', 'post3047864236')"> FormSet = self.get_changelist_formset(request)</li></ol>
1357
1358 <ol start="1057" class="context-line"><li onclick="toggle('pre3047864236', 'post3047864236')"> formset = cl.formset = FormSet(queryset=cl.result_list) <span>...</span></li></ol>
1359
1360 <ol start='1058' class="post-context" id="post3047864236"><li onclick="toggle('pre3047864236', 'post3047864236')"></li><li onclick="toggle('pre3047864236', 'post3047864236')"> # Build the list of media to be used by the formset.</li><li onclick="toggle('pre3047864236', 'post3047864236')"> if formset:</li><li onclick="toggle('pre3047864236', 'post3047864236')"> media = self.media + formset.media</li><li onclick="toggle('pre3047864236', 'post3047864236')"> else:</li><li onclick="toggle('pre3047864236', 'post3047864236')"> media = self.media</li></ol>
1361
1362 </div>
1363
1364
1365
1366 <div class="commands">
1367 <a href="#" onclick="return varToggle(this, '3047864236')"><span>&#x25b6;</span> Local vars</a>
1368 </div>
1369 <table class="vars" id="v3047864236">
1370 <thead>
1371 <tr>
1372 <th>Variable</th>
1373 <th>Value</th>
1374 </tr>
1375 </thead>
1376 <tbody>
1377
1378 <tr>
1379 <td>ChangeList</td>
1380 <td class="code"><div>&lt;class &#39;django.contrib.admin.views.main.ChangeList&#39;&gt;</div></td>
1381 </tr>
1382
1383 <tr>
1384 <td>ERROR_FLAG</td>
1385 <td class="code"><div>&#39;e&#39;</div></td>
1386 </tr>
1387
1388 <tr>
1389 <td>FormSet</td>
1390 <td class="code"><div>&lt;class &#39;django.forms.formsets.MyModelFormFormSet&#39;&gt;</div></td>
1391 </tr>
1392
1393 <tr>
1394 <td>action_failed</td>
1395 <td class="code"><div>False</div></td>
1396 </tr>
1397
1398 <tr>
1399 <td>actions</td>
1400 <td class="code"><div>{&#39;delete_selected&#39;: (&lt;function delete_selected at 0x96fa33c&gt;, &#39;delete_selected&#39;, &lt;django.utils.functional.__proxy__ object at 0x96fc36c&gt;)}</div></td>
1401 </tr>
1402
1403 <tr>
1404 <td>app_label</td>
1405 <td class="code"><div>&#39;edittest&#39;</div></td>
1406 </tr>
1407
1408 <tr>
1409 <td>cl</td>
1410 <td class="code"><div>&lt;django.contrib.admin.views.main.ChangeList object at 0xb68abdec&gt;</div></td>
1411 </tr>
1412
1413 <tr>
1414 <td>extra_context</td>
1415 <td class="code"><div>None</div></td>
1416 </tr>
1417
1418 <tr>
1419 <td>formset</td>
1420 <td class="code"><div>None</div></td>
1421 </tr>
1422
1423 <tr>
1424 <td>list_display</td>
1425 <td class="code"><div>[&#39;action_checkbox&#39;, &#39;id&#39;, &#39;boolfield&#39;, &#39;boolfield2&#39;]</div></td>
1426 </tr>
1427
1428 <tr>
1429 <td>opts</td>
1430 <td class="code"><div>&lt;Options for MyModel&gt;</div></td>
1431 </tr>
1432
1433 <tr>
1434 <td>request</td>
1435 <td class="code"><div>&lt;WSGIRequest
1436GET:&lt;QueryDict: {u&#39;p&#39;: [u&#39;2&#39;]}&gt;,
1437POST:&lt;QueryDict: {}&gt;,
1438COOKIES:{&#39;__utma&#39;: &#39;1.1814913469.1283793829.1283793829.1283793829.1&#39;,
1439 &#39;__utmz&#39;: &#39;1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
1440 &#39;csrftoken&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
1441 &#39;django_language&#39;: &#39;cs&#39;,
1442 &#39;sessionid&#39;: &#39;8dfca394e11b853ff19f5ed43395f660&#39;},
1443META:{&#39;CDPATH&#39;: &#39;.:~:~/data/Fotky/netrideny-archiv&#39;,
1444 &#39;CONTENT_LENGTH&#39;: &#39;&#39;,
1445 &#39;CONTENT_TYPE&#39;: &#39;text/plain&#39;,
1446 &#39;CSRF_COOKIE&#39;: &#39;b485bb44c526ebb351fafa8c64391d68&#39;,
1447 &#39;DBUS_SESSION_BUS_ADDRESS&#39;: &#39;unix:abstract=/tmp/dbus-Z8z73Ec0l5,guid=586bf253f65eb398760c4e8b4c965042&#39;,
1448 &#39;DISPLAY&#39;: &#39;:0.0&#39;,
1449 &#39;DJANGO_SETTINGS_MODULE&#39;: &#39;editabletest.settings&#39;,
1450 &#39;EDITOR&#39;: &#39;joe&#39;,
1451 &#39;EMAIL&#39;: &#39;tuttle@sandbox.cz&#39;,
1452 &#39;FIGNORE&#39;: &#39;.o:~&#39;,
1453 &#39;GATEWAY_INTERFACE&#39;: &#39;CGI/1.1&#39;,
1454 &#39;GREP_COLOR&#39;: &#39;1;34&#39;,
1455 &#39;GREP_OPTIONS&#39;: &#39;--color=auto&#39;,
1456 &#39;HISTCONTROL&#39;: &#39;ignoreboth&#39;,
1457 &#39;HISTFILE&#39;: &#39;/home/tuttle/.history_bash/bashhist.puk.20100919-204317.pid6014&#39;,
1458 &#39;HISTSIZE&#39;: &#39;5000&#39;,
1459 &#39;HOME&#39;: &#39;/home/tuttle&#39;,
1460 &#39;HTTP_ACCEPT&#39;: &#39;text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8&#39;,
1461 &#39;HTTP_ACCEPT_CHARSET&#39;: &#39;ISO-8859-1,utf-8;q=0.7,*;q=0.7&#39;,
1462 &#39;HTTP_ACCEPT_ENCODING&#39;: &#39;gzip,deflate&#39;,
1463 &#39;HTTP_ACCEPT_LANGUAGE&#39;: &#39;cs,en-us;q=0.7,en;q=0.3&#39;,
1464 &#39;HTTP_CONNECTION&#39;: &#39;keep-alive&#39;,
1465 &#39;HTTP_COOKIE&#39;: &#39;csrftoken=b485bb44c526ebb351fafa8c64391d68; sessionid=8dfca394e11b853ff19f5ed43395f660; django_language=cs; __utma=1.1814913469.1283793829.1283793829.1283793829.1; __utmz=1.1283793829.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)&#39;,
1466 &#39;HTTP_HOST&#39;: &#39;localhost:8081&#39;,
1467 &#39;HTTP_IF_NONE_MATCH&#39;: &#39;&quot;700c83e328799a470e5aa858da708e3d&quot;&#39;,
1468 &#39;HTTP_KEEP_ALIVE&#39;: &#39;115&#39;,
1469 &#39;HTTP_USER_AGENT&#39;: &#39;Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.11pre) Gecko/20100916 Ubuntu/9.10 (karmic) Namoroka/3.6.11pre&#39;,
1470 &#39;LANG&#39;: &#39;en_US.UTF-8&#39;,
1471 &#39;LESS&#39;: &#39;-isMRnq#3~&#39;,
1472 &#39;LESSCLOSE&#39;: &#39;/usr/bin/lesspipe %s %s&#39;,
1473 &#39;LESSOPEN&#39;: &#39;| /usr/bin/lesspipe %s&#39;,
1474 &#39;LOGNAME&#39;: &#39;tuttle&#39;,
1475 &#39;OLDPWD&#39;: &#39;/home/tuttle/tmp/editable-test&#39;,
1476 &#39;ORIGPHOTOS&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
1477 &#39;ORIGROTDIR&#39;: &#39;/home/tuttle/tmp/origphotos&#39;,
1478 &#39;ORIGSHRINKDIR&#39;: &#39;/home/tuttle/tmp/origpohotos&#39;,
1479 &#39;PATH&#39;: &#39;~/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&#39;,
1480 &#39;PATH_INFO&#39;: u&#39;/admin/edittest/mymodel/&#39;,
1481 &#39;PHOTOTARGET&#39;: &#39;/home/tuttle/data/Fotky/netrideny-archiv&#39;,
1482 &#39;PROMPT_COMMAND&#39;: &#39;history -a&#39;,
1483 &#39;PS1&#39;: &#39;\\[\\e]0;-\\a\\]`rctmp=$?; [ $rctmp != 0 ] &amp;&amp; echo &quot;(rc=$rctmp) &quot;`\\[\\e[32m\\]\\D{%H%M%S} ${OLDPWD/#$HOME/~} \\[\\e[34m\\]\\h \\w\\[\\e[0m\\]\\n\\$ &#39;,
1484 &#39;PWD&#39;: &#39;/home/tuttle/tmp/editable-test/editabletest&#39;,
1485 &#39;PYTHONPATH&#39;: &#39;/home/tuttle/tmp/editable-test/django-trunk/&#39;,
1486 &#39;QUERY_STRING&#39;: &#39;p=2&#39;,
1487 &#39;REMOTE_ADDR&#39;: &#39;127.0.0.1&#39;,
1488 &#39;REMOTE_HOST&#39;: &#39;&#39;,
1489 &#39;REQUEST_METHOD&#39;: &#39;GET&#39;,
1490 &#39;RUN_MAIN&#39;: &#39;true&#39;,
1491 &#39;SCRIPT_NAME&#39;: u&#39;&#39;,
1492 &#39;SERVER_NAME&#39;: &#39;localhost&#39;,
1493 &#39;SERVER_PORT&#39;: &#39;8081&#39;,
1494 &#39;SERVER_PROTOCOL&#39;: &#39;HTTP/1.1&#39;,
1495 &#39;SERVER_SOFTWARE&#39;: &#39;WSGIServer/0.1 Python/2.6.4&#39;,
1496 &#39;SHELL&#39;: &#39;/bin/bash&#39;,
1497 &#39;SHLVL&#39;: &#39;1&#39;,
1498 &#39;SSH_AGENT_PID&#39;: &#39;4221&#39;,
1499 &#39;SSH_AUTH_SOCK&#39;: &#39;/tmp/ssh-njGJdh4197/agent.4197&#39;,
1500 &#39;TERM&#39;: &#39;xterm&#39;,
1501 &#39;TZ&#39;: &#39;America/Chicago&#39;,
1502 &#39;USER&#39;: &#39;tuttle&#39;,
1503 &#39;VISUAL&#39;: &#39;joe&#39;,
1504 &#39;WINDOWID&#39;: &#39;41943055&#39;,
1505 &#39;WINDOWPATH&#39;: &#39;7&#39;,
1506 &#39;XDG_SESSION_COOKIE&#39;: &#39;bc7ed7881ec8274b22e18fab4b1e7747-1284919362.717707-2026208578&#39;,
1507 &#39;XTERM_LOCALE&#39;: &#39;en_US.UTF-8&#39;,
1508 &#39;XTERM_SHELL&#39;: &#39;/bin/bash&#39;,
1509 &#39;XTERM_VERSION&#39;: &#39;XTerm(243)&#39;,
1510 &#39;_&#39;: &#39;./manage.py&#39;,
1511 &#39;wsgi.errors&#39;: &lt;open file &#39;&lt;stderr&gt;&#39;, mode &#39;w&#39; at 0xb761a0c0&gt;,
1512 &#39;wsgi.file_wrapper&#39;: &lt;class &#39;django.core.servers.basehttp.FileWrapper&#39;&gt;,
1513 &#39;wsgi.input&#39;: &lt;socket._fileobject object at 0x984b56c&gt;,
1514 &#39;wsgi.multiprocess&#39;: False,
1515 &#39;wsgi.multithread&#39;: True,
1516 &#39;wsgi.run_once&#39;: False,
1517 &#39;wsgi.url_scheme&#39;: &#39;http&#39;,
1518 &#39;wsgi.version&#39;: (1, 0)}&gt;</div></td>
1519 </tr>
1520
1521 <tr>
1522 <td>selected</td>
1523 <td class="code"><div>[]</div></td>
1524 </tr>
1525
1526 <tr>
1527 <td>self</td>
1528 <td class="code"><div>&lt;editabletest.edittest.admin.MyModelAdmin object at 0x983dbac&gt;</div></td>
1529 </tr>
1530
1531 </tbody>
1532 </table>
1533
1534 </li>
1535
1536 <li class="frame">
1537 <code>/home/tuttle/tmp/editable-test/django-trunk/django/forms/models.py</code> in <code>__init__</code>
1538
1539
1540 <div class="context" id="c3047863836">
1541
1542 <ol start="432" class="pre-context" id="pre3047863836"><li onclick="toggle('pre3047863836', 'post3047863836')"> model = None</li><li onclick="toggle('pre3047863836', 'post3047863836')"></li><li onclick="toggle('pre3047863836', 'post3047863836')"> def __init__(self, data=None, files=None, auto_id=&#39;id_%s&#39;, prefix=None,</li><li onclick="toggle('pre3047863836', 'post3047863836')"> queryset=None, **kwargs):</li><li onclick="toggle('pre3047863836', 'post3047863836')"> self.queryset = queryset</li><li onclick="toggle('pre3047863836', 'post3047863836')"> defaults = {&#39;data&#39;: data, &#39;files&#39;: files, &#39;auto_id&#39;: auto_id, &#39;prefix&#39;: prefix}</li><li onclick="toggle('pre3047863836', 'post3047863836')"> defaults.update(kwargs)</li></ol>
1543
1544 <ol start="439" class="context-line"><li onclick="toggle('pre3047863836', 'post3047863836')"> super(BaseModelFormSet, self).__init__(**defaults) <span>...</span></li></ol>
1545
1546 <ol start='440' class="post-context" id="post3047863836"><li onclick="toggle('pre3047863836', 'post3047863836')"></li><li onclick="toggle('pre3047863836', 'post3047863836')"> def initial_form_count(self):</li><li onclick="toggle('pre3047863836', 'post3047863836')"> &quot;&quot;&quot;Returns the number of forms that are required in this FormSet.&quot;&quot;&quot;</li><li onclick="toggle('pre3047863836', 'post3047863836')"> if not (self.data or self.files):</li><li onclick="toggle('pre3047863836', 'post3047863836')"> return len(self.get_queryset())</li><li onclick="toggle('pre3047863836', 'post3047863836')"> return super(BaseModelFormSet, self).initial_form_count()</li></ol>
1547
1548 </div>
1549
1550
1551
1552 <div class="commands">
1553 <a href="#" onclick="return varToggle(this, '3047863836')"><span>&#x25b6;</span> Local vars</a>
1554 </div>
1555 <table class="vars" id="v3047863836">
1556 <thead>
1557 <tr>
1558 <th>Variable</th>
1559 <th>Value</th>
1560 </tr>
1561 </thead>
1562 <tbody>
1563
1564 <tr>
1565 <td>auto_id</td>
1566 <td class="code"><div>&#39;id_%s&#39;</div></td>
1567 </tr>
1568
1569 <tr>
1570 <td>data</td>
1571 <td class="code"><div>None</div></td>
1572 </tr>
1573
1574 <tr>
1575 <td>defaults</td>
1576 <td class="code"><div>{&#39;auto_id&#39;: &#39;id_%s&#39;, &#39;data&#39;: None, &#39;files&#39;: None, &#39;prefix&#39;: None}</div></td>
1577 </tr>
1578
1579 <tr>
1580 <td>files</td>
1581 <td class="code"><div>None</div></td>
1582 </tr>
1583
1584 <tr>
1585 <td>kwargs</td>
1586 <td class="code"><div>{}</div></td>
1587 </tr>
1588
1589 <tr>
1590 <td>prefix</td>
1591 <td class="code"><div>None</div></td>
1592 </tr>
1593
1594 <tr>
1595 <td>queryset</td>
1596 <td class="code"><div>()</div></td>
1597 </tr>
1598
1599 <tr>
1600 <td>self</td>
1601 <td class="code"><div>&lt;django.forms.formsets.MyModelFormFormSet object at 0xb6869c6c&gt;</div></td>
1602 </tr>
1603
1604 </tbody>
1605 </table>
1606
1607 </li>
1608
1609 <li class="frame">
1610 <code>/home/tuttle/tmp/editable-test/django-trunk/django/forms/formsets.py</code> in <code>__init__</code>
1611
1612
1613 <div class="context" id="c3047865516">
1614
1615 <ol start="40" class="pre-context" id="pre3047865516"><li onclick="toggle('pre3047865516', 'post3047865516')"> self.data = data</li><li onclick="toggle('pre3047865516', 'post3047865516')"> self.files = files</li><li onclick="toggle('pre3047865516', 'post3047865516')"> self.initial = initial</li><li onclick="toggle('pre3047865516', 'post3047865516')"> self.error_class = error_class</li><li onclick="toggle('pre3047865516', 'post3047865516')"> self._errors = None</li><li onclick="toggle('pre3047865516', 'post3047865516')"> self._non_form_errors = None</li><li onclick="toggle('pre3047865516', 'post3047865516')"> # construct the forms in the formset</li></ol>
1616
1617 <ol start="47" class="context-line"><li onclick="toggle('pre3047865516', 'post3047865516')"> self._construct_forms() <span>...</span></li></ol>
1618
1619 <ol start='48' class="post-context" id="post3047865516"><li onclick="toggle('pre3047865516', 'post3047865516')"></li><li onclick="toggle('pre3047865516', 'post3047865516')"> def __unicode__(self):</li><li onclick="toggle('pre3047865516', 'post3047865516')"> return self.as_table()</li><li onclick="toggle('pre3047865516', 'post3047865516')"></li><li onclick="toggle('pre3047865516', 'post3047865516')"> def _management_form(self):</li><li onclick="toggle('pre3047865516', 'post3047865516')"> &quot;&quot;&quot;Returns the ManagementForm instance for this FormSet.&quot;&quot;&quot;</li></ol>
1620
1621 </div>
1622
1623
1624
1625 <div class="commands">
1626 <a href="#" onclick="return varToggle(this, '3047865516')"><span>&#x25b6;</span> Local vars</a>
1627 </div>
1628 <table class="vars" id="v3047865516">
1629 <thead>
1630 <tr>
1631 <th>Variable</th>
1632 <th>Value</th>
1633 </tr>
1634 </thead>
1635 <tbody>
1636
1637 <tr>
1638 <td>auto_id</td>
1639 <td class="code"><div>&#39;id_%s&#39;</div></td>
1640 </tr>
1641
1642 <tr>
1643 <td>data</td>
1644 <td class="code"><div>None</div></td>
1645 </tr>
1646
1647 <tr>
1648 <td>error_class</td>
1649 <td class="code"><div>&lt;class &#39;django.forms.util.ErrorList&#39;&gt;</div></td>
1650 </tr>
1651
1652 <tr>
1653 <td>files</td>
1654 <td class="code"><div>None</div></td>
1655 </tr>
1656
1657 <tr>
1658 <td>initial</td>
1659 <td class="code"><div>None</div></td>
1660 </tr>
1661
1662 <tr>
1663 <td>prefix</td>
1664 <td class="code"><div>None</div></td>
1665 </tr>
1666
1667 <tr>
1668 <td>self</td>
1669 <td class="code"><div>&lt;django.forms.formsets.MyModelFormFormSet object at 0xb6869c6c&gt;</div></td>
1670 </tr>
1671
1672 </tbody>
1673 </table>
1674
1675 </li>
1676
1677 <li class="frame">
1678 <code>/home/tuttle/tmp/editable-test/django-trunk/django/forms/formsets.py</code> in <code>_construct_forms</code>
1679
1680
1681 <div class="context" id="c3047864356">
1682
1683 <ol start="89" class="pre-context" id="pre3047864356"><li onclick="toggle('pre3047864356', 'post3047864356')"> if initial_forms &gt; self.max_num &gt;= 0:</li><li onclick="toggle('pre3047864356', 'post3047864356')"> initial_forms = self.max_num</li><li onclick="toggle('pre3047864356', 'post3047864356')"> return initial_forms</li><li onclick="toggle('pre3047864356', 'post3047864356')"></li><li onclick="toggle('pre3047864356', 'post3047864356')"> def _construct_forms(self):</li><li onclick="toggle('pre3047864356', 'post3047864356')"> # instantiate all the forms and put them in self.forms</li><li onclick="toggle('pre3047864356', 'post3047864356')"> self.forms = []</li></ol>
1684
1685 <ol start="96" class="context-line"><li onclick="toggle('pre3047864356', 'post3047864356')"> for i in xrange(self.total_form_count()): <span>...</span></li></ol>
1686
1687 <ol start='97' class="post-context" id="post3047864356"><li onclick="toggle('pre3047864356', 'post3047864356')"> self.forms.append(self._construct_form(i))</li><li onclick="toggle('pre3047864356', 'post3047864356')"></li><li onclick="toggle('pre3047864356', 'post3047864356')"> def _construct_form(self, i, **kwargs):</li><li onclick="toggle('pre3047864356', 'post3047864356')"> &quot;&quot;&quot;</li><li onclick="toggle('pre3047864356', 'post3047864356')"> Instantiates and returns the i-th form instance in a formset.</li><li onclick="toggle('pre3047864356', 'post3047864356')"> &quot;&quot;&quot;</li></ol>
1688
1689 </div>
1690
1691
1692
1693 <div class="commands">
1694 <a href="#" onclick="return varToggle(this, '3047864356')"><span>&#x25b6;</span> Local vars</a>
1695 </div>
1696 <table class="vars" id="v3047864356">
1697 <thead>
1698 <tr>
1699 <th>Variable</th>
1700 <th>Value</th>
1701 </tr>
1702 </thead>
1703 <tbody>
1704
1705 <tr>
1706 <td>self</td>
1707 <td class="code"><div>&lt;django.forms.formsets.MyModelFormFormSet object at 0xb6869c6c&gt;</div></td>
1708 </tr>
1709
1710 </tbody>
1711 </table>
1712
1713 </li>
1714
1715 <li class="frame">
1716 <code>/home/tuttle/tmp/editable-test/django-trunk/django/forms/formsets.py</code> in <code>total_form_count</code>
1717
1718
1719 <div class="context" id="c3047863956">
1720
1721 <ol start="65" class="pre-context" id="pre3047863956"><li onclick="toggle('pre3047863956', 'post3047863956')"> management_form = property(_management_form)</li><li onclick="toggle('pre3047863956', 'post3047863956')"></li><li onclick="toggle('pre3047863956', 'post3047863956')"> def total_form_count(self):</li><li onclick="toggle('pre3047863956', 'post3047863956')"> &quot;&quot;&quot;Returns the total number of forms in this FormSet.&quot;&quot;&quot;</li><li onclick="toggle('pre3047863956', 'post3047863956')"> if self.data or self.files:</li><li onclick="toggle('pre3047863956', 'post3047863956')"> return self.management_form.cleaned_data[TOTAL_FORM_COUNT]</li><li onclick="toggle('pre3047863956', 'post3047863956')"> else:</li></ol>
1722
1723 <ol start="72" class="context-line"><li onclick="toggle('pre3047863956', 'post3047863956')"> initial_forms = self.initial_form_count() <span>...</span></li></ol>
1724
1725 <ol start='73' class="post-context" id="post3047863956"><li onclick="toggle('pre3047863956', 'post3047863956')"> total_forms = initial_forms + self.extra</li><li onclick="toggle('pre3047863956', 'post3047863956')"> # Allow all existing related objects/inlines to be displayed,</li><li onclick="toggle('pre3047863956', 'post3047863956')"> # but don&#39;t allow extra beyond max_num.</li><li onclick="toggle('pre3047863956', 'post3047863956')"> if initial_forms &gt; self.max_num &gt;= 0:</li><li onclick="toggle('pre3047863956', 'post3047863956')"> total_forms = initial_forms</li><li onclick="toggle('pre3047863956', 'post3047863956')"> elif total_forms &gt; self.max_num &gt;= 0:</li></ol>
1726
1727 </div>
1728
1729
1730
1731 <div class="commands">
1732 <a href="#" onclick="return varToggle(this, '3047863956')"><span>&#x25b6;</span> Local vars</a>
1733 </div>
1734 <table class="vars" id="v3047863956">
1735 <thead>
1736 <tr>
1737 <th>Variable</th>
1738 <th>Value</th>
1739 </tr>
1740 </thead>
1741 <tbody>
1742
1743 <tr>
1744 <td>self</td>
1745 <td class="code"><div>&lt;django.forms.formsets.MyModelFormFormSet object at 0xb6869c6c&gt;</div></td>
1746 </tr>
1747
1748 </tbody>
1749 </table>
1750
1751 </li>
1752
1753 <li class="frame">
1754 <code>/home/tuttle/tmp/editable-test/django-trunk/django/forms/models.py</code> in <code>initial_form_count</code>
1755
1756
1757 <div class="context" id="c3047864596">
1758
1759 <ol start="437" class="pre-context" id="pre3047864596"><li onclick="toggle('pre3047864596', 'post3047864596')"> defaults = {&#39;data&#39;: data, &#39;files&#39;: files, &#39;auto_id&#39;: auto_id, &#39;prefix&#39;: prefix}</li><li onclick="toggle('pre3047864596', 'post3047864596')"> defaults.update(kwargs)</li><li onclick="toggle('pre3047864596', 'post3047864596')"> super(BaseModelFormSet, self).__init__(**defaults)</li><li onclick="toggle('pre3047864596', 'post3047864596')"></li><li onclick="toggle('pre3047864596', 'post3047864596')"> def initial_form_count(self):</li><li onclick="toggle('pre3047864596', 'post3047864596')"> &quot;&quot;&quot;Returns the number of forms that are required in this FormSet.&quot;&quot;&quot;</li><li onclick="toggle('pre3047864596', 'post3047864596')"> if not (self.data or self.files):</li></ol>
1760
1761 <ol start="444" class="context-line"><li onclick="toggle('pre3047864596', 'post3047864596')"> return len(self.get_queryset()) <span>...</span></li></ol>
1762
1763 <ol start='445' class="post-context" id="post3047864596"><li onclick="toggle('pre3047864596', 'post3047864596')"> return super(BaseModelFormSet, self).initial_form_count()</li><li onclick="toggle('pre3047864596', 'post3047864596')"></li><li onclick="toggle('pre3047864596', 'post3047864596')"> def _existing_object(self, pk):</li><li onclick="toggle('pre3047864596', 'post3047864596')"> if not hasattr(self, &#39;_object_dict&#39;):</li><li onclick="toggle('pre3047864596', 'post3047864596')"> self._object_dict = dict([(o.pk, o) for o in self.get_queryset()])</li><li onclick="toggle('pre3047864596', 'post3047864596')"> return self._object_dict.get(pk)</li></ol>
1764
1765 </div>
1766
1767
1768
1769 <div class="commands">
1770 <a href="#" onclick="return varToggle(this, '3047864596')"><span>&#x25b6;</span> Local vars</a>
1771 </div>
1772 <table class="vars" id="v3047864596">
1773 <thead>
1774 <tr>
1775 <th>Variable</th>
1776 <th>Value</th>
1777 </tr>
1778 </thead>
1779 <tbody>
1780
1781 <tr>
1782 <td>self</td>
1783 <td class="code"><div>&lt;django.forms.formsets.MyModelFormFormSet object at 0xb6869c6c&gt;</div></td>
1784 </tr>
1785
1786 </tbody>
1787 </table>
1788
1789 </li>
1790
1791 <li class="frame">
1792 <code>/home/tuttle/tmp/editable-test/django-trunk/django/forms/models.py</code> in <code>get_queryset</code>
1793
1794
1795 <div class="context" id="c3047862836">
1796
1797 <ol start="469" class="pre-context" id="pre3047862836"><li onclick="toggle('pre3047862836', 'post3047862836')"> qs = self.queryset</li><li onclick="toggle('pre3047862836', 'post3047862836')"> else:</li><li onclick="toggle('pre3047862836', 'post3047862836')"> qs = self.model._default_manager.get_query_set()</li><li onclick="toggle('pre3047862836', 'post3047862836')"></li><li onclick="toggle('pre3047862836', 'post3047862836')"> # If the queryset isn&#39;t already ordered we need to add an</li><li onclick="toggle('pre3047862836', 'post3047862836')"> # artificial ordering here to make sure that all formsets</li><li onclick="toggle('pre3047862836', 'post3047862836')"> # constructed from this queryset have the same form order.</li></ol>
1798
1799 <ol start="476" class="context-line"><li onclick="toggle('pre3047862836', 'post3047862836')"> if not qs.ordered: <span>...</span></li></ol>
1800
1801 <ol start='477' class="post-context" id="post3047862836"><li onclick="toggle('pre3047862836', 'post3047862836')"> qs = qs.order_by(self.model._meta.pk.name)</li><li onclick="toggle('pre3047862836', 'post3047862836')"></li><li onclick="toggle('pre3047862836', 'post3047862836')"> # Removed queryset limiting here. As per discussion re: #13023</li><li onclick="toggle('pre3047862836', 'post3047862836')"> # on django-dev, max_num should not prevent existing</li><li onclick="toggle('pre3047862836', 'post3047862836')"> # related objects/inlines from being displayed.</li><li onclick="toggle('pre3047862836', 'post3047862836')"> self._queryset = qs</li></ol>
1802
1803 </div>
1804
1805
1806
1807 <div class="commands">
1808 <a href="#" onclick="return varToggle(this, '3047862836')"><span>&#x25b6;</span> Local vars</a>
1809 </div>
1810 <table class="vars" id="v3047862836">
1811 <thead>
1812 <tr>
1813 <th>Variable</th>
1814 <th>Value</th>
1815 </tr>
1816 </thead>
1817 <tbody>
1818
1819 <tr>
1820 <td>qs</td>
1821 <td class="code"><div>()</div></td>
1822 </tr>
1823
1824 <tr>
1825 <td>self</td>
1826 <td class="code"><div>&lt;django.forms.formsets.MyModelFormFormSet object at 0xb6869c6c&gt;</div></td>
1827 </tr>
1828
1829 </tbody>
1830 </table>
1831
1832 </li>
1833
1834 </ul>
1835 </div>
1836
1837 <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
1838 <div id="pastebinTraceback" class="pastebin">
1839 <input type="hidden" name="language" value="PythonConsole">
1840 <input type="hidden" name="title" value="AttributeError at /admin/edittest/mymodel/">
1841 <input type="hidden" name="source" value="Django Dpaste Agent">
1842 <input type="hidden" name="poster" value="Django">
1843 <textarea name="content" id="traceback_area" cols="140" rows="25">
1844Environment:
1845
1846Request Method: GET
1847Request URL: http://localhost:8081/admin/edittest/mymodel/?p=2
1848Django Version: 1.3 pre-alpha SVN-13863
1849Python Version: 2.6.4
1850Installed Applications:
1851[&#39;django.contrib.auth&#39;,
1852 &#39;django.contrib.contenttypes&#39;,
1853 &#39;django.contrib.sessions&#39;,
1854 &#39;django.contrib.sites&#39;,
1855 &#39;django.contrib.messages&#39;,
1856 &#39;django.contrib.admin&#39;,
1857 &#39;editabletest.edittest&#39;]
1858Installed Middleware:
1859(&#39;django.middleware.common.CommonMiddleware&#39;,
1860 &#39;django.contrib.sessions.middleware.SessionMiddleware&#39;,
1861 &#39;django.middleware.csrf.CsrfViewMiddleware&#39;,
1862 &#39;django.contrib.auth.middleware.AuthenticationMiddleware&#39;,
1863 &#39;django.contrib.messages.middleware.MessageMiddleware&#39;)
1864
1865
1866Traceback:
1867File "/home/tuttle/tmp/editable-test/django-trunk/django/core/handlers/base.py" in get_response
1868 100. response = callback(request, *callback_args, **callback_kwargs)
1869File "/home/tuttle/tmp/editable-test/django-trunk/django/contrib/admin/options.py" in wrapper
1870 245. return self.admin_site.admin_view(view)(*args, **kwargs)
1871File "/home/tuttle/tmp/editable-test/django-trunk/django/utils/decorators.py" in _wrapped_view
1872 76. response = view_func(request, *args, **kwargs)
1873File "/home/tuttle/tmp/editable-test/django-trunk/django/views/decorators/cache.py" in _wrapped_view_func
1874 69. response = view_func(request, *args, **kwargs)
1875File "/home/tuttle/tmp/editable-test/django-trunk/django/contrib/admin/sites.py" in inner
1876 190. return view(request, *args, **kwargs)
1877File "/home/tuttle/tmp/editable-test/django-trunk/django/utils/decorators.py" in _wrapper
1878 21. return decorator(bound_func)(*args, **kwargs)
1879File "/home/tuttle/tmp/editable-test/django-trunk/django/utils/decorators.py" in _wrapped_view
1880 76. response = view_func(request, *args, **kwargs)
1881File "/home/tuttle/tmp/editable-test/django-trunk/django/utils/decorators.py" in bound_func
1882 17. return func(self, *args2, **kwargs2)
1883File "/home/tuttle/tmp/editable-test/django-trunk/django/contrib/admin/options.py" in changelist_view
1884 1057. formset = cl.formset = FormSet(queryset=cl.result_list)
1885File "/home/tuttle/tmp/editable-test/django-trunk/django/forms/models.py" in __init__
1886 439. super(BaseModelFormSet, self).__init__(**defaults)
1887File "/home/tuttle/tmp/editable-test/django-trunk/django/forms/formsets.py" in __init__
1888 47. self._construct_forms()
1889File "/home/tuttle/tmp/editable-test/django-trunk/django/forms/formsets.py" in _construct_forms
1890 96. for i in xrange(self.total_form_count()):
1891File "/home/tuttle/tmp/editable-test/django-trunk/django/forms/formsets.py" in total_form_count
1892 72. initial_forms = self.initial_form_count()
1893File "/home/tuttle/tmp/editable-test/django-trunk/django/forms/models.py" in initial_form_count
1894 444. return len(self.get_queryset())
1895File "/home/tuttle/tmp/editable-test/django-trunk/django/forms/models.py" in get_queryset
1896 476. if not qs.ordered:
1897
1898Exception Type: AttributeError at /admin/edittest/mymodel/
1899Exception Value: &#39;tuple&#39; object has no attribute &#39;ordered&#39;
1900</textarea>
1901 <br><br>
1902 <input type="submit" value="Share this traceback on a public Web site">
1903 </div>
1904</form>
1905</div>
1906
1907</body>
1908</html>
Back to Top