0

我試圖對數據存儲區做一個簡單的保存字符串,重定向該實體的鍵,然後在下一個處理程序中獲取它。當我在PDFHandler中調用字符串(a.name())時,無論我輸入什麼內容,都會返回「w」。Google App Engine從數據存儲區返回奇數值

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) 
+0

您在數據存儲的AppEngine觀衆看到名稱字段值是什麼在你的PDF實體上? – gipsy 2015-02-05 20:54:28

+0

它給出了名字「鮑比史密斯」,「約翰亞當斯」等這裏有另一個問題。我已經到了可以返回實體密鑰的地步。我如何簡單地從這裏查找實體屬性(名稱,ID)?當我輸入post = key.get()時,我得到 AttributeError:'str'對象沒有屬性'get' – 2015-02-05 21:02:16

+0

看起來像你調用key.get()時 - 鍵是一個字符串而不是Key對象。如果您從url獲取密鑰 - 您需要先取得該字符串,然後在調用get()之前爲該實體創建一個Key對象。 – 2015-02-05 21:33:11

回答

2

在你PDFHandler當你做

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

你所得到的是Key對象不是實體呢。

爲了讓你可以做下面的

pdf = db.get(a) 

PDF格式的實體然後你就可以像pdf.name等PDF訪問領域

相關問題