V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
DAOCLOUD
推荐学习书目
Python Cookbook
Using Google App Engine
推荐下载
Latest Google App Engine SDK
其他兼容技术
AppScale
darasion

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

  •  
  •   darasion · Dec 31, 2010 · 4323 views
    This topic created in 5609 days ago, the information mentioned may be changed or developed.
    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)
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3082 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:30 · PVG 13:30 · LAX 22:30 · JFK 01:30
    ♥ Do have faith in what you're doing.