FYI:I found the solution. It is a *GOTCHA* issue when upgrading to 1.92.3 from 1.77.3 Now you have to use .xml() on the URL() that you send into the GAE API: upload_url = blobstore.create_upload_url(URL(r=request,c='default',f='upbm2gig_gaehandle r',args=None).xml()) # This works upload_url = blobstore.create_upload_url(URL(r=request,c='default',f='upbm2gig_gaehandle r',args=None)) # This crashes It crashes because between 1.77.3 and 1.92.3, a change was made in html.py in the URL() class. Around html.py line 265, they added XML() around the return value. return XML(rewrite.url_out(r or _request, env, application, controller, function, args, other, scheme, host, port)) In 1.77.3 it was formerly: return rewrite.url_out(r or _request, env,....) So basically they have changed the signature of the URL() object.
On Mar 7, 4:58 pm, dlypka <dly...@gmail.com> wrote: > Ever since web2py 1.91.6 I have had to patch html.py to avoid this > exception when my code > tries to do an ajax callback to get some HTML: > > Traceback (most recent call last): > File "c:\Google\AppEngine\esentrnet\gluon\restricted.py", line 188, > in restricted > exec ccode in environment > File "c:\Google\AppEngine\esentrnet\applications\init/controllers/ > default.py:upbm2gig", line 238, in <module> > File "c:\Google\AppEngine\esentrnet\gluon\globals.py", line 95, in > <lambda> > self._caller = lambda f: f() > File "c:\Google\AppEngine\esentrnet\applications\init/controllers/ > default.py:upbm2gig", line 93, in upbm2gig > File "applications\init\modules\controllers\default_module.py", line > 1766, in upbm2gig > upload_url = > blobstore.create_upload_url(URL(r=request,c='default',f='upbm2gig_gaehandle > r',args=None)) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\blobstore\blobstore.py", line 192, in create_upload_url > _make_sync_call('blobstore', 'CreateUploadURL', request, response) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\apiproxy_stub_map.py", line 86, in MakeSyncCall > return stubmap.MakeSyncCall(service, call, request, response) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\apiproxy_stub_map.py", line 286, in MakeSyncCall > rpc.CheckSuccess() > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\apiproxy_rpc.py", line 149, in _WaitImpl > self.request, self.response) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\apiproxy_stub.py", line 80, in MakeSyncCall > method(request, response) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\blobstore\blobstore_stub.py", line 218, in > _Dynamic_CreateUploadURL > users.get_current_user()) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\blobstore\blobstore_stub.py", line 204, in _CreateSession > user) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\blobstore\blobstore_stub.py", line 79, in CreateUploadSession > 'state': 'init'}) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\datastore.py", line 638, in update > self.__setitem__(name, value) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\datastore.py", line 617, in __setitem__ > datastore_types.ValidateProperty(name, value) > File "C:\Program Files (x86)\Google\google_appengine\google\appengine > \api\datastore_types.py", line 1323, in ValidateProperty > 'Unsupported type for property %s: %s' % (name, v.__class__)) > BadValueError: Unsupported type for property success_path: <class > 'gluon.html.XML'> > > CAUSED BY a change in html.py line 265 in 1.92.3 where it does > return XML(rewrite.filter_out(url, env,.... > > the old web2py code in 1.77.3.does not do this. > > 1.77.3 does > return rewrite.filter_out(url, env) which works for me. > > My patch is to delete the enclosing XML() expression.