Google App Engine 从数据存储区返回奇数值

Google App Engine returning odd values from datastore

我正在尝试将一个简单的字符串保存到数据存储区,重定向到该实体的密钥,然后在下一个处理程序中获取它。当我在 PDFHandler 中调用以获取字符串 (a.name()) 时,无论我输入什么,每次都会返回 "w"。

class Pdf(db.Model):
    name = db.StringProperty(required=True)

class InputHandler(Handler):
    def get(self):
        self.render('cert_form.html')

    def post(self):
        name = self.request.get('name')

        if name:
            a = Pdf(name=name)
            a.put()
            self.redirect('/key=%s' % a.key())
        else:
            error = "Please enter your full name."
            self.render('cert_form.html')

class PDFHandler(Handler):
    def get(self, id):
        a = db.Key.from_path('Pdf', id)


        self.response.write(a.name())

application = webapp2.WSGIApplication([
    (r'/', InputHandler),
    (r'/key=(.)+', PDFHandler),
], debug=True)

当你这样做时在你的 PDFHandler 中

a = db.Key.from_path('Pdf', id)

您得到的是 Key 对象,而不是实体。

要获取 Pdf 实体,您可以执行以下操作

pdf = db.get(a)

然后您可以访问 pdf 上的字段,例如 pdf.name 等