2013-03-26 29 views
0

我在GAE上構建了一個簡單的wiki,我想在將內容放入數據存儲時將常規重定向添加到處理程序中。但是直到我提交兩次後才重新定向到內容頁面不是編輯頁面本身。[gae]重定向僅在第二次後成功

Here is my handler code: 
class BlogHandler(webapp2.RequestHandler): 
    def write(self, *a, **kw): 
     self.response.out.write(*a, **kw) 

    def render_str(self, template, **params): 
     params['user'] = self.user 
     t = jinja_env.get_template(template) 
     return t.render(params) 

    def render(self, template, **kw): 
     self.write(self.render_str(template, **kw)) 

class WikiFront(BlogHandler): 
    def get(self, url): 
     #pages = WikiData.all() 
     pages = db.GqlQuery("SELECT * FROM WikiData") 
     found = False 
     content = "" 
     for page in pages: 
      if page.url == url: 
       found = True 
       content = page.content 
     if not found: 
      self.redirect("/_edit" + url) 
     else: 
      self.render('wiki.html', content=content, url=url) 

class EditPage(BlogHandler): 

    def get(self,url): 
     if self.user: 
      self.render("wiki_edit.html") 
     else: 
      self.redirect("/login") 

    def post(self,url): 

     content = self.request.get('content') 
     if content: 
      w = WikiData(parent = wiki_key(), content = content, url= url) 
      w.put() 
      self.redirect('/wiki' + url) 

    else: 
     error = "Give us content plz" 
     self.render("wiki_edit.html", content=content, error=error) 

    # mapping stuff 
    app = webapp2.WSGIApplication([ 
          ('wiki' + PAGE_RE, WikiFront), 
          ('/_edit' + PAGE_RE, EditPage), 
          ], 
          debug=True) 
+0

EditPage.post方法發生重定向問題嗎?這不是很清楚。儘量避免假設的範圍以獲得有用的答案。 – kevin 2013-03-26 14:34:31

回答

0

如果重定向Post方法後發生在這裏,添加return語句之後每次重定向,因爲它是極有可能試圖完成未完成重定向評估方法多。