I cannot reproduce this either. It is not an internationalization
issue. I suspect something else in the code is causing this. We need
to see at the entire code.

On Apr 26, 10:37 am, Timothy Farrell <[email protected]> wrote:
> My assumption that web2py is returning something other than a list comes
> from the traceback.  Why would calling:
>
> len(returned_obj)
>
> go into the cgi module if it was a string?  Rocket alone does not use
> the cgi module at all so the returned object must be related to it
> somehow.  We know that lists that contain strings do not relate to the
> cgi module.
>
> All that aside, there's something more going on here.  I've plugged
> hwangs code into a test application here and could not reproduce the
> problematic behavior.  The only changes I made to the code posted was
> changing request.flash = 'ok' to response.flash = 'ok' and adding a db =
> DAL('sqlite://storage.db') to the model file.
>
> Could there be a i18n/l10n issue here?
>
> -tim
>
> On 4/26/2010 9:16 AM, mdipierro wrote:
>
> > 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<[email protected]>  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<[email protected]>  wrote:
>
> >>>> Do you have a view with a custom form?
>
> >>>> On Apr 25, 10:53 pm, hywang<[email protected]>  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