0

我正在使用 GAE、Datastore、Python 2.7,并且第一次使用祖先在数据存储中创建/更新条目。在这里,我试图查看Level_2_Headings数据存储中是否有任何条目/行,如果没有,则创建一个新条目/行。如果确实存在,则更新描述。我收到此错误 - 数据存储为Level_2_Headings空,因此它应该恢复为空,以便我可以添加新条目,但相反,我在查询q2我使用祖先属性的对象时遇到错误 - 任何关于为什么会出现这种情况的想法,因为我期望只返回一个空对象,因为它不存在于数据存储中???像往常一样感谢帮助。

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"
4

1 回答 1

1

Level_2_Heading直接引用模型,而不调用all()检索记录。Level_2_Headings.all()将返回一个具有该ancestor属性的对象,因此请尝试将您的第一个更改q2为:

q2 = Level_2_Headings.all().ancestor(q.key()).filter("name2 =",heading2).get()
于 2013-01-03T20:33:28.420 回答