Google App Engine - 获取父密钥或祖先路径的属性

时间:2012-12-05 13:54:00

标签: python google-app-engine google-cloud-datastore

我有这样的数据结构:

Restaurant > Menu > Category > Dish

当我为餐馆加载每道菜时,使用:

q = db.Query(Dish)
q.ancestor('Restaurant Key')

我希望每道菜都有一条带有每个祖先属性名称的路径:

dish.path = "Cheesecake Factory > Meals > Beefs > Beef with Potatoes"

我知道dish.to_path(),但这只会返回祖先的实体类型。

1 个答案:

答案 0 :(得分:2)

如果你使用对象的名称作为密钥,id(“Cheescake Factory”,“Meals”,“Beefs”等),这是可能的。

dish.key()。to_path()应该为您提供格式[等等的列表祖父母亲,祖父母姓名/身份证,父亲亲属,父母姓名/身份证,种类,姓名/身份证明>]

但是,如果对象的名称不是键,则必须获取每个祖先对象以获取名称。在这种情况下,最好将整个路径作为字符串存储在菜单实体中,以便节省数据存储提取。