2017-09-04 167 views
0

這是我的GAE數據存儲:缺少的屬性得到數據存儲的對象

class Search(ndb.Model): 
    city = ndb.StringProperty() 
    counter = ndb.IntegerProperty(indexed = True) 
    date = ndb.DateTimeProperty(auto_now_add=True) 

當我運行這部分代碼:

keys = Search.query(Search.city == city).fetch() 

if (len(keys)==0): 
    luogo = Search(city = city, counter = 1) 
    luogo.put() 
else: 
    for key in keys: 
     luogo_1 = key.get() 
     luogo_1.counter = luogo_1.counter+1 
     luogo_1.put() 

我的終端說,在對象的搜索失蹤的屬性得到

你知道爲什麼嗎?

回答

1

運行

keys = Search.query(Search.city == city).fetch()

獲取列表模型實例

所以

for key in keys: 
    luogo_1 = key.get() 

因爲實例沒有get方法失敗。

你需要做的:

keys = Search.query(Search.city == city).fetch(keys_only=True)

獲取密鑰列表,或治療keys作爲實例,而不是關鍵字的列表,並省略key.get()電話。

+0

非常感謝你 –

+0

但是,如果意圖獲取實體,這有點多餘。 'Search.query(Search.city == city).fetch()'的結果是一個實體列表,因此您不需要使用該鍵並獲取它們。 –

1

也許是因爲key對象沒有get()方法:

luogo_1 = key.get() 

使用Python dir()功能,它幫助了我很多

相關問題