I would use ...blobstore.create_upload_url(str(URL(r=request,c='default',f='upbm2gig_gaehandle r',args=None)))
On Mar 12, 9:55 am, dlypka <dly...@gmail.com> wrote: > FYI:I found 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. > Not very backward compatible, I would say... > > On Mar 12, 12:48 am, Carl Roach <m...@carlroach.com> wrote: > > > > > > > > > thanks howesc > > > On 11 Mar 2011, at 23:29, howesc <how...@umich.edu> wrote: > > > > i use taskqueue extensively in my GAE apps. i have not wrapped it in a > > > way that it runs in non-gae environment. My usages of the taskqueue are > > > for things that i can't complete in a single 30 second execution time, so > > > i suppose i could put an 'if not GAE run all the processing in one > > > request' type statement. > > > > my usual usage pattern (i have a few variations on this, but this is a > > > simple example): > > > > def process_lots_of_rows(): > > > from google.appengine.api import taskqueue > > > > last_timestamp = request.vars.last_timestamp or > > > datetime.datetime(2010,1,1) #reasonable default for my app > > > limit = 100 > > > #get records. use >= so i don't miss any, don't use ID as they are > > > not assigned in strictly increasing fashion > > > rows = db(db.record.created_time >= > > > last_timestamp).select(orderby=db.end_user.timestamp, > > > limitby=(0,limit)) > > > > for r in rows: > > > r.update_record(bob='fred') > > > > if len(rows) == limit: > > > #there are probably more to process > > > taskqueue.add(url=URL(r=request)) > > > > return dict(message="did some work")