app engine ndb 쿼리 결과에 이상한 동작이 나타납니다.쿼리 결과의 AppEngine keyProperty 필드에 잠시 후 None 값이 표시됩니다.
모델 (간체) :
객체 (약 100 ~ 200.)의 전체 세트가 쿼리를 수집class Trainer(polymodel.PolyModel):
user = ndb.KeyProperty(kind='User')
:
trainers = Trainer.query()
이 단계에서는 개인 트레이너 객체가 가지고
user = trainer.user.get()
트레이너 컬렉션 :함으로써 얻어 질 수있는 유효한 사용자 객체 여러 중간 파이썬 목록으로 나뉩니다. 그 후 트레이너 개체의 대부분은 .user
에 대한 None
값을가집니다. 몇 년 동안이 코드를 사용했습니다. 다른 사람이 ndb.KeyProperty
으로 이런 문제를 겪었습니까? 데이터 집합이 너무 커지면 주요 속성이 제거 될 수 있습니까?
개발자 콘솔에서 실제 데이터 저장소 엔티티를 찾아보고 실제로 '사용자'가 설정되어 있는지 확인할 수 있습니다. AFAIK는 엔티티가 명시 적으로 지정되지 않는 한 'None'으로 설정할 수 없습니다. 프로젝션 쿼리를 통해 획득하는 동안 엔티티를 가져 오는 동안 조심하십시오 - 이들은 불완전하고 프로젝션에 포함되지 않은 모든 속성을 잃게됩니다. –
개발자 콘솔에서 모든 교육 엔티티에는 사용자 정의 속성 (키)이 있습니다. 결과 집합을 사용한 작업 중에 만이 사용자 특성은 없음으로 설정됩니다. – jjmurre
이상한 조건으로 이어지는 실제 코드를 표시 할 수 있습니까 (콜렉션 분할 처리 포함)? 또는 문제를 재분배하는 데 사용할 수있는 MCVE를 추출 하시겠습니까? –