all*_*ode 2 python google-app-engine google-cloud-datastore
假设我有
class Foo(db.Model):
bar = db.ReferenceProperty(Bar)
foo = Foo.all().get()
Run Code Online (Sandbox Code Playgroud)
有没有办法让我在没有查询数据存储的情况下执行foo.bar?该文档说foo.bar
会的一个实例Key
,所以我希望能够做的foo.bar.id()
和能够得到id
的Bar
是与相关的foo
,但它似乎并没有这样的.
PS:我所指的文档部分可以在这里找到:
它说:
"应用程序可以显式地db.get()ReferenceProperty(它是一个Key)的值来测试引用的实体是否存在."
正如文档所说,
ReferenceProperty值可以像使用模型实例一样使用,并且将获取数据存储区实体,并在以这种方式首次使用时创建模型实例.未触及的引用属性不会查询不需要的数据.
所以只要你不触摸它就可以了,但如果你这样做,例如.id()
你正在显示一个电话,"数据存储区实体将被取出",文档说.这里有更多的文档,但它们也没有显示出一种神奇地获取id而无需获取的方法.
我没有尝试过,但是您可以使用属性的get_value_for_datastore来获取"属性的Python本机值",我相信它确实是一个Key - 其id()
方法应该可以在没有数据存储区提取的情况下调用.你试过吗?
归档时间: |
|
查看次数: |
464 次 |
最近记录: |