如何返回get_by_id的长度?
例如我有
query = Model.get_by_id(1)
我试过
if len(query) == 1
和if query.count() == 1
都无效
答案 0 :(得分:4)
* Model.get_by_id()* 只返回一个对象,如果传递了一个id,只有在传递了id列表时才会返回一个对象列表,这意味着它显然是赢了有 len 和计数。
如果你想检查查询是否不是None,你可以简单地给出
query=Model.get_by_id(1)
if query is not None:
如果要根据键获取对象列表,请使用get:
query = MOdel.get(keys) #here keys is a list of keys
if len(query) == 1 will work now
答案 1 :(得分:1)
来自http://code.google.com/appengine/docs/python/datastore/modelclass.html#Model_get_by_id:
如果ids是表示一个名称的字符串,则该方法返回该模型的实例 name,如果实体不存在,则为None。如果ids是一个列表,则该方法返回一个列表 模型实例,当没有相应Key的实体时,为None值。
所以使用类似的东西:
query = Model.get_by_id(1)
if query is None:
print 'Not found'
else:
print 'Returned one result'
表示多个ID:
query = Model.get_by_id([1, 2, 3])
count = 0
for item in query:
if item is not None:
print 'Found item ' + str(item)
count += 1
print count
警告:未经测试