Python [gae]重定向仅在第二次后成功

Python [gae]重定向仅在第二次后成功,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我正在GAE上构建一个简单的wiki,我想在将内容放入数据存储时向处理程序添加一个普通的重定向。但在我提交两次之前,它无法工作。它重定向到内容页,而不是编辑页本身 Here is my handler code: class BlogHandler(webapp2.RequestHandler): def write(self, *a, **kw): self.response.out.write(*a, **kw) def render_str(self, t

我正在GAE上构建一个简单的wiki,我想在将内容放入数据存储时向处理程序添加一个普通的重定向。但在我提交两次之前,它无法工作。它重定向到内容页,而不是编辑页本身

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)

如果重定向发生在这里的Post方法之后,请在每个重定向之后添加一个return语句,因为它很可能试图在不完成重定向的情况下完成对方法的评估。

重定向问题是否发生在EditPage.Post方法上?不太清楚。尽量避免随意假设,以获得有用的答案。