[Twisted-web] Redirect with deferred
Tommi Virtanen
tv at twistedmatrix.com
Wed Oct 27 11:50:33 MDT 2004
Vicky Lupien wrote:
> I have a little problem. I have a deferred and I want to
> redirect after the defered is done. But it seems that my page is
> rendered and my redirect is never done. Can someone help me.
...
> class HousesQuickSearch(pagelib.QuebecPage, sqlQueries):
>
> def render_content(self, context, data):
> request = context.locate(inevow.IRequest)
> def _(data):
> print data
> ses = request.getSession()
> self.houseSR = sessions.ISessionPrefs(ses).get('houseSR')
> sessions.ISessionPrefs(ses).set(self.houseSR[0], data)
> sessions.ISessionPrefs(ses).set(self.houseSR[4], 0)
> lengthPage =
> sessions.ISessionPrefs(ses).get(self.houseSR[2])
> widthPage =
> sessions.ISessionPrefs(ses).get(self.houseSR[3])
> currentPage, pageBatchItems = self.nextPage(data,
> lengthPage, widthPage, 0)
> sessions.ISessionPrefs(ses).set(self.houseSR[4],
> currentPage)
> sessions.ISessionPrefs(ses).set(self.houseSR[1],
> pageBatchItems)
> dir = '/'.join(['', '/'.join(request.prepath[0:-1]),
> "search", "results"])
> #this is not done
> return request.redirect(dir)
>
> conditions = " where 1"
> if request.args.get('plan_number')[0]:
> conditions += " and
> plan_number='"+str(request.args.get('plan_number')[0])+"'"
> sql = self.getHouseSearchResultsInfo(conditions)
> dbpool =
> request.getSession().guard.resource.portal.realm.dbpool
> searchResults = dbpool.runQueryDict(sql)
> searchResults.addCallback(_)
Your indentation seems to be really all over the place, I'm assuming
your "return request.redirect(dir)" is inside def _. Try adding a
"return searchResults" at the bottom of render_content.
More information about the Twisted-web
mailing list