2013-10-09 25 views
0

蟒蛇2.7 應用程序引擎1.8.5.1039App Engine的Expando模型get_by_id不是爲我的生活工作

我想不出乳清我InventoryItem Expando模型將返回無。我的ID是有效的。我檢查過數據存儲的次數超過了我想要記住的次數。我是否必須將Expando模型父級傳遞給正確的工作?要提供

class InventoryItem(db.Expando): 
    def toDict(self): 
     d = db.to_dict(self) 
     d['id'] = self.key().id() 
     return d 

inventoryItem = InventoryItem(parent=toon.getInventory()) 
for k,v in item.iteritems(): 
    setattr(inventoryItem,k,v) 
    inventoryItem.put() 

inventoryItem_id = self.request.get("id") 
     logging.info(inventoryItem_id)#5770237022568448 
     item = InventoryItem.get_by_id(long(inventoryItem_id))#returns None 
+0

inventoryItem = InventoryItem(parent = toon.getInventory()) 這是您創建對象的唯一地方嗎?你正在做和放入同一個交易? get_by_id應該工作,無論它是否是exapando。你能提供你參考的數據存儲項目的屏幕截圖嗎? – marcadian

回答

2

您的來電get_by_id需要父母,因爲你是在創建實體提供父母。 InventoryItem(parent=toon.getInventory())

看到調用文檔爲get_by_id(id, parent=None, app=None, namespace=None, **ctx_options)

我也建議你去上什麼用父母的意思很好理解關鍵的是如何工作的是很基本的使用AppEngine上閱讀的文檔。

相關問題