親を持つ NDB Key() を遅延関数に渡します。この関数では、エンティティを再度取得します。しかし、渡されたキーを使用してエンティティを直接取得することはできません。ndb.Key() でキーの順序のペアリングを変更する必要があります。
deferred.defer(my_deferred.a_function, entity.key)
entity.key() は次のようになります。
Key('Parents', 'my_parent', 'Childs', 'my_child') # the first pair is the parent?
my_deferred.py :
def a_function(key) :
entity = ndb.Key(key) # the pass entity.key does not work !!!!!
例外を与える: ValueError: Key() には偶数の位置引数が必要です。
entity = ndb.Key('Childs', key.id(), parent = key.parent()).get() # this one works fine
entity.key() メソッドが直接使用できるキーを提供しない理由がわかりません。または、キーを「変更」せずにエンティティを取得する別の方法があります。そして、ValueErrorの例外がわかりません。
更新:グレゴリーに感謝
entity = key.get() # works fine