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

Reply via email to