부모와 함께 NDB Key()를 지연 함수에 전달합니다. 이 함수에서 엔티티를 다시 검색합니다. 하지만 전달 된 키를 사용하여 엔티티를 직접 가져올 수는 없습니다. ndb.Key()에서 키 순서 페어링을 변경해야합니다.부모와 함께 ndb 키를 전달하고이를 사용하여 엔티티를 얻는 방법
이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를이 : 키() 위치 인수의 짝수 번호가 있어야합니다
deferred.defer(my_deferred.a_function, entity.key)
entity.key는()처럼 보인다 .
entity = ndb.Key('Childs', key.id(), parent = key.parent()).get() # this one works fine
왜 entity.key() 메서드가 직접 키를 제공하지 않는지 이해할 수 없습니까? 또는 키를 "변경"하지 않고 엔티티를 가져 오는 다른 방법이 있습니다. 그리고 저는 ValueError에 대한 이해를하지 못합니다.
업데이트 : 그레고리
덕분에entity = key.get() # works fine
Tahnks. 미안 해요, 내 질문에 entity.key() mistyped (내 코드가 아닌) 및 entity.key 변경되었습니다. 한 번 읽은 적이 있습니다 : 엔티티를 작업에 전달하지 마십시오. 하지만 열쇠를 건네 주면 열쇠 만. 그리고 entity.key를 전달할 때 키의 첫 번째 쌍이 부모를 보유하기 때문에 키를 직접 사용할 수 없습니다. – voscausa
답을 다시 읽으십시오. 나는 시도했다 : key.get(). 예, 괜찮습니다. 고마워요! – voscausa
걱정하지 마세요. 기꺼이 도와 드리겠습니다. :) –