胡猜 db.Key.from_path() 的用法。

2010-12-31 00:57:19 +08:00
 darasion
1、假设 “<” 符号可以代表:
孙实体<子实体<父实体


2、初始化(伪代码):
class A(db.Model):
#...

class B(db.Model):
#...

class C(db.Model):
#...

a=A()
a.put()

b=B(parent=a)
b.put()

c=C(parent=b)
c.put()

于是得到关系为 c <- b <- a 这样一组实体。


3、要想已知 c 的 id 或 key_name 获得 c :

这样会失败:
c=C.get_by_id(id)

而必须这样做:
key=db.Key.from_path('A', a.key().id_or_name(), 'B',b.key().id_or_name(), 'C',id )
c=db.get(key)


4、路径不仅可以用在不同Kind的不同实体之间。也可以用在相同 Kind 不同的实体之间。
例如2中初始化代码可以改成:

class M(db.Model):
#...

a=M()
a.put()

b=M(parent=a)
b.put()

c=M(parent=b)
c.put()

获取:
key=db.Key.from_path('M', a.key().id_or_name(), 'M', b.key().id_or_name(), 'M', id)
c=db.get(key)
3789 次点击
所在节点    Google App Engine
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/6539

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX