2011-05-10 73 views

回答

4

* Model.get_by_id()*僅回報單個對象如果傳遞了一個id,它將返回al只有當id列表被傳遞時,這意味着它不會有len和count。

如果要檢查,如果查詢不是沒有,你可以簡單地給

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 
+0

'len個(查詢)== 1'將當且僅當'len(keys)== 1'時爲True,特別是,即使'keys'列表中的單個鍵不對應於實際的數據存儲對象。 – geoffspear 2011-05-10 11:38:48

1

http://code.google.com/appengine/docs/python/datastore/modelclass.html#Model_get_by_id

如果IDS是代表一個名稱,然後用一個字符串該方法返回的模型實例名稱,如果該實體不存在,則爲None。如果ids是一個列表,則該方法將返回一個 模型實例的列表,如果沒有實體存在相應的鍵,則返回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 

警告:未經測試

相關問題