App Engine Expando模型get_by_id无效

时间:2013-10-09 21:54:12

标签: google-app-engine python-2.7

python 2.7 app engine 1.8.5.1039

对于我的生活我无法弄清楚乳清我的InventoryItem Expando模型返回无。我的身份证有效。我检查数据存储的次数比我想记住的次数多。我是否必须将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

1 个答案:

答案 0 :(得分:2)

您对get_by_id的调用将需要提供父级,因为您在创建实体时提供父级。 InventoryItem(parent=toon.getInventory())

查看get_by_id(id, parent=None, app=None, namespace=None, **ctx_options)

的来电文档

我还建议你去阅读关于密钥工作方式的文档,以便很好地理解使用父方法对于使用appengine非常重要。