从另一页面引用实体

时间:2013-01-14 23:30:31

标签: python google-app-engine google-cloud-datastore

我正在使用Google App Engine创建一个带有表单的页面来创建一个名为“tutorial”的实体。然后,当下次点击时,用户有另一个表单,以便为之前创建的教程创建章节。我的问题是将“教程”的引用带到“章节”

新教程页面的处理程序:

class NewTut(FuHandler):
    def get(self):
        self.render('newTut.html')
    def post(self):
        title = self.request.get("title")
        tags = self.request.get("tags")
        tut = Tutorial(title=title, tags=tags)
        tut.put()

        self.redirect('/newchap' #should i put here 'tut'?#)

这部分完美无缺,但在创建章节时如何使用此tut

新章节页面的处理程序:

class NewChap(FuHandler):
    def get(self):
        self.render('newChapter.html')

    def post(self):
        tutorial = Tutorial(??????)
        title = self.request.get("chapTitle")
        content = self.request.get("content")
        note = self.request.get("note")

我需要做些什么来使这个引用工作?

2 个答案:

答案 0 :(得分:2)

您希望通过URL将教程ID传递到下一页。您可以将此作为get参数,或仅作为路径的一部分。以下是如何将其作为get参数:

self.redirect('/newchap?tutorial_id=%s' % tut.key)

然后,在你的NewChap处理程序中:

tutorial_id = request.get("tutorial_id")
tutorial = db.Key.from_path('Tutorial', tutID)

答案 1 :(得分:0)

您应该重定向到'/newchap/%s' %tut.key.id(),然后在请求中提取ID。