2009-04-29 63 views
3

編輯多個模型實例:對不起,我沒有澄清這個,這是一個谷歌App Engine的相關問題。插入使用單一db.put()在谷歌應用程序引擎

根據this,我可以給db.put()一個模型實例列表,並要求它將它們全部輸入到數據存儲中。但是,我沒能成功地做到這一點。我仍然使用Python一點點新的,這樣下去容易對我

list_of_models = [] 
for i in range(0, len(items) - 1): 
    point = ModelName() 

    ... put the model info here ... 

    list_of_models.append(point) 

db.put(list_of_models) 

任何人都可以指出我要去哪裏錯了嗎?

+0

你發佈的內容看起來不錯。你將不得不告訴我們你遇到了什麼錯誤。 – 2009-04-30 09:17:11

回答

4

請定義您通過「走出去錯了」是什麼意思 - 代碼的小塊你可以顯示非常清楚是一個應用程序,是相當「正確」的一部分。考慮如:

class Hello(db.Model): 
    name = db.StringProperty() 
    when = db.DateTimeProperty() 

class MainHandler(webapp.RequestHandler): 

    def get(self): 
    self.response.out.write('Hello world!') 
    one = Hello(name='Uno', when=datetime.datetime.now()) 
    two = Hello(name='Due', when=datetime.datetime.now()) 
    both = [one, two] 
    db.put(both) 

這並插入兩個實體正確每個get方法時被調用,例如,如果一個示例應用程序以繼續:

def main(): 
    application = webapp.WSGIApplication([('/', MainHandler)], 
             debug=True) 
    wsgiref.handlers.CGIHandler().run(application) 


if __name__ == '__main__': 
    main() 

在一個典型的「Hello World」應用程序引擎應用程序你可以,當然還是通過添加另一個處理程序,其獲取實體背部和顯示他們,等等等等

所以請澄清覈實無誤除了使用SDK控制檯的數據存儲瀏覽器兩個實體的!