私のコードのいくつかの異なる場所でdb.Key.from_path(Model、key_name)を使用していて、db.get()またはModel.get_by_key_name() 。私は、これらの後者のコマンドが何かを戻すべきであることを確かに知っていても、常に0のアイテムを返すことに気づいた。厳密な検査の結果、db.Key.from_path()コマンドが正しいキーを返さなかったことに気付きました。返されるキーは、特に冒頭では非常によく似ていますが、文字の一部が異なり、データストアビューアに表示されるキーよりも約75%短くなっています。他に誰かがこれに遭遇しましたか?ありがとう。ここでdb.Key.from_path()が正しいキーを返さない
は、いくつかのサンプルコードです:
class Root(db.Model):
pass
class Parent(db.Model):
pass
class MyModel(db.Model):
pass
root = Root().put()
parent = Parent(key_name=parentname,parent=root).put()
mymodel = MyModel(key_name=mymodelname,parent=parent).put()
mymodel_k = db.Key.from_path('Parent','parentname','MyModel','mymodelname')
mymodel = db.get(mymodel_k)
mymodelというあなたは、すべての祖先とパスを正しく構築されていませんなし
Key.from_path「は一つ以上の祖先パスから新しいKeyオブジェクトを構築しますエンティティのキー "、これはあなたがやろうとしていることですか?関連性の高いコードを投稿すると、良い答えを得るにはかなり時間がかかります。 – Sologoub
@Sologoub:Key.from_pathは、同じパラメタを提供する場合、同じキーを返します。 – aschmid00
あなたのコメントをありがとう、私はいくつかのサンプルコードが含まれています。 – mkc