Gio*_*oia 4 google-app-engine app-engine-ndb
也许这是错的,但我总是对我的应用使用此查询:
cme_only = Comput.all().filter('__key__ =', cid.key())
Run Code Online (Sandbox Code Playgroud)
这个NDB查询的兼容版本是什么?元数据查询非常不同..
编辑:cid是一个实体,cme_only是一个可迭代的,我肯定只有一个值
cid = Comput.get_by_id(int(self.request.get('id')))
cme_only = Comput.all().filter('__key__ =', cid.key())
Run Code Online (Sandbox Code Playgroud)
然后在模板中:
{{ for Comput in cme_only }}
Run Code Online (Sandbox Code Playgroud)
我不喜欢它,但它已经足够了
不需要元数据查询.NDB拼写查询的方式__key__如下:
ModelClass.query(ModelClass._key == key_value)
Run Code Online (Sandbox Code Playgroud)
也就是说,就像通过过滤来查询属性foo一样ModelClass.foo == value,ModelClass._key是表示密钥的伪属性.
其他海报是正确的,如果你只有一个实体给定其全键,使用get()Key对象上的方法更好(更快,更便宜).此外,如果e是一个实体(模型实例),在NDB,关键是没有e.key(),但e.key(或e._key-是的,这就是我在上面提到的相同_key属性,它可以作为一个类属性和实例属性).
事实上,如果你有一个urlsafe密钥(例如'agFfcg4LEghFbXBsb3llZRgDDA'),将其转换为Key对象的方法是ndb.Key(urlsafe='agFfcg4LEghFbXBsb3llZRgDDA').
祝好运!
| 归档时间: |
|
| 查看次数: |
517 次 |
| 最近记录: |