2013-01-03 4 views
0

저는 GAE, Datastore, Python 2.7을 사용하고 있으며 조상을 사용하여 데이터 저장소에 처음으로 항목을 작성/업데이트하고 있습니다. 여기에 어떤 항목/행에 Level_2_Headings 데이터 스토어가 있는지 확인하려고합니다. 그렇지 않은 경우 새 것을 작성합니다. 존재하는 경우 설명을 업데이트하십시오. 이 오류가 발생합니다 - Level_2_Headings의 데이터 저장소가 비어있어서 새 항목을 추가 할 수 있도록 빈을 다시 가져와야하지만 그 대신에 ancestor 속성을 사용하는 q2 개체에 대한 쿼리에 오류가 발생합니다. - 왜 데이터 저장소에 존재하지 않기 때문에 반환되는 빈 개체를 기대하고있을 때 이것이 어떻게 될지에 대한 아이디어가 있습니까 ??? 도움말은 평소와 같이 평가됩니다.attributeError 받기 : type 객체 '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

당신은 기록을 검색 할 수 all()를 호출하지 않고, 직접 Level_2_Heading 모델을 참조한다. Level_2_Headings.all()ancestor 속성을 가진 개체를 반환, 그래서 첫 번째 q2로 변경하려고합니다 :

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

많은 감사를 !!!!! – user1769203

+0

@ user1769203 문제 없습니다. 행운을 빈다. – RocketDonkey