我尝试从应用引擎数据存储中获取数据。
按'title'(或任何其他属性)过滤查询有效:
obj = db.Query(PageModel).filter('title',title)[0]
但与ID相同 - 不是:
obj = db.Query(PageModel).filter('ID',page_id)[0]
我认为数据存储区中的ID和KEY有一些特殊之处,但我无法找到,如何通过ID实现数据获取。
答案 0 :(得分:13)
尝试
obj = PageModel.get_by_id(page_id)
代替。这假设您使用的ID是数据存储区键的数字ID(即来自obj.key().id()
),而不是您添加到PageModel
的任意ID字段。< / p>
答案 1 :(得分:2)
您可以使用密钥过滤数据:
from google.appengine.ext.db import Key
key = Key('bgakaWdyc3NlcnIPCxIJRmVlZEVudHJ5GAwM')
# Match many
PageModel.all().filter('__key__ IN ', [key])
# Match one
PageModel.all().filter('__key__ = ', key)
但是,在获取一个条目时,首选get_by_id(id)方法。