2013-01-03 73 views
0

我正在使用GAE,Datastore,Python 2.7並且首次使用祖先創建/更新數據存儲中的條目。在這裏,我試圖查看Level_2_Headings數據存儲中是否有任何條目/行,如果沒有,則創建一個新的條目/行。如果確實存在,則更新描述。我收到此錯誤 - Level_2_Headings的數據存儲區爲空,因此它應該將空白表示爲空,以便我可以添加新條目,但是在查詢使用祖先屬性的對象q2時發生錯誤 - 關於爲什麼當我預計只有一個空對象被返回,因爲它不存在於數據存儲區時,會有什麼想法?幫助像往常一樣受到讚賞。正在獲取attributeError:type object'Level_2_Headings'沒有屬性'ancestor'(GAE數據存儲)

if q: 
    q2 = Level_2_Headings.ancestor(q.key()).filter("name2 =",heading2).get() 
    if q2: 
     q2.description2 = description2 
     q2.put()   
    else:   
     #new level 2 being added to ds 
     new_2 = Level_2_Headings(parent=q2, name2=name2, description2=description2, heading_type=heading_type) 
     new_2.put() 

     message="Added NEW category entry to level 2" 

回答

1

您直接引用Level_2_Heading模式,而無需調用all()檢索記錄。 Level_2_Headings.all()將返回具有ancestor屬性的對象,所以試着改變你的第一q2到:

q2 = Level_2_Headings.all().ancestor(q.key()).filter("name2 =",heading2).get() 
+0

非常感謝!!!!! – user1769203

+0

@ user1769203沒問題,萬事如意! – RocketDonkey