I think we need some debugging. His code is def hello(): form = SQLFORM(db.easy_test) if form.accepts(request.vars, session): request.flash = 'ok' return dict(form=form)
and web2py returns a list with a string in this case (the generic view that renders the dict()). I do not see how web2py can return anything else. On Apr 26, 8:04 am, Timothy Farrell <tfarr...@swgen.com> wrote: > Massimo, I know you sent me an email on this but I can't find it so I'll > just reply to the list. > > Rocket is dying in this case because the object it has received from > web2py is not a valid WSGI response. A valid WSGI response must be > either a list or generator (Rocket is a little more tolerant and will > accept a string as well). But in this case it seems to be getting some > form of a cgi.FieldStorage type as evidenced by the traceback going into > the cgi module when Rocket tries to read the length of the returned object. > > Massimo, I've seen the web2py code that it normally scrubs returned > objects. This was a while ago and may have changed since then. > > Rocket could die a little more gracefully, but I'd rather keep the code > lean rather than checking every response for validity. As a test, there > is a WSGI validator in the wsgiref module that works as middleware. You > might hook that up to see what is really coming back. > > -tim > > On 4/26/2010 1:53 AM, hywang wrote: > > > i has no view . > > when i test newest version in google hg server, web2py works well, > > but if I add IS_IMAGE() validator, some error occured again. > > > ver1.6x works well > > > On 4 26 , 2ʱ01 , mdipierro <mdipie...@cs.depaul.edu> wrote: > > >> Do you have a view with a custom form? > > >> On Apr 25, 10:53 pm, hywang <why00...@163.com> wrote: > > >>> I run web2py from source on centos 5.3. > >>> When upload a file, an error occurs. > >>> -----db.py----------- > >>> db.define_table('easy_test', > >>> Field('picture', 'upload') > >>> ) > > >>> ---------controller file--------------- > >>> def hello(): > >>> form = SQLFORM(db.easy_test) > >>> if form.accepts(request.vars, session): > >>> request.flash = 'ok' > >>> return dict(form=form) > > >>> when submit the form, it returns 'server error' > >>> consel error msg : > >>> ERROR:Rocket.Errors.Thread-3:Traceback (most recent call last): > >>> File "E:\web2py\gluon\rocket.py", line 747, in run > >>> self.run_app(conn) > >>> File "E:\web2py\gluon\rocket.py", line 1162, in run_app > >>> sections = len(output) > >>> File "C:\Python25\lib\cgi.py", line 633, in __len__ > >>> return len(self.keys()) > >>> File "C:\Python25\lib\cgi.py", line 609, in keys > >>> raise TypeError, "not indexable" > >>> TypeError: not indexable > > >>> -- > >>> Subscription > >>> settings:http://groups.google.com/group/web2py/subscribe?hl=en