0

初めての投稿で、Google App Engine は初めてです。

Model.get_by_id を使用してオブジェクトにアクセスしようとする試みが機能しない理由を、私の人生では理解できません。

私のテストデータが取り込まれ、コメントとして出力を確認できます。データストア ビューアーでデータの ID を確認できますが、その ID を使用しようとするとオブジェクトが返されません。

    namespace_manager.set_namespace('myNamespace')

    models.MyClass.all().fetch(100) の t の場合:
        print t.key().id() # キーを出力し、Datastore Viewer で検証します
        print t.date # 日付を出力します

        myClassInstance = models.MyClass.get_by_id(t.key().id()) # オブジェクトが見つからない
        ツアーがなしの場合:
            print "MyClass インスタンスが見つかりません"

出力は

    6
    2012-04-24 20:47:13.537000
    MyClass インスタンスが見つかりません
    27
    2012-04-24 20:47:13.605000
    MyClass インスタンスが見つかりません
    29
    2012-04-24 20:47:13.611000
    MyClass インスタンスが見つかりません
    31
    2012-04-24 20:47:13.617000
    MyClass インスタンスが見つかりません

これはルートエンティティではなく、子もあることに注意してください...しかし、 MyClass.get_by_id メソッドは正しいオブジェクトを返すべきではありませんか?

前もって感謝します!

4

1 に答える 1

3

親/先祖を持つエンティティを作成している場合は、それをget_by_id関数にも提供する必要があります。

entity = MyModel(parent = parentkey,
                 name   = 'somename')
entity.put()

entity_by_id = MyModel.get_by_id(entity.key().id(), parent = parentkey)
于 2012-04-24T22:00:30.890 に答える