0

私はGAE、データストア、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()ancestorq2

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