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

时间:2015-02-05 20:44:40

标签: python python-2.7 google-app-engine google-cloud-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)

1 个答案:

答案 0 :(得分:2)

当您执行

时在PDFHandler中
a = db.Key.from_path('Pdf', id)

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

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

pdf = db.get(a)

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