2010-05-19 4 views
2

고객 오브젝트를 db.ReferenceProperty로 선언하면 db.ReferenceProperty를 사용하여 선언합니다.google datastore - 게으르는로드입니까?

상당량의 주문이있을 수 있습니다. 고객 객체를 당길 경우 당겨질 위험이 있습니다. 명령의 완전한 세트?

+0

첫날? – adhanlon

+0

@ Silmarl89 - 귀하의 요점은 무엇입니까? –

답변

6

예, db.ReferenceProperty 필드가 지연로드됩니다. the docs에서 :

ReferenceProperty 자동으로 속성 값으로 참조 및 역 참조 모델 인스턴스 : 모델 인스턴스를 직접 ReferenceProperty에 할당 할 수 있습니다, 그 키가 사용됩니다. ReferenceProperty 값은 모델 인스턴스 인 것처럼 사용할 수 있으며 데이터 저장소 엔터티를 가져오고이 인스턴스를 처음 사용할 때 만들어지는 모델 인스턴스입니다. 손길이 닿지 않는 참조 속성은 불필요한 데이터를 쿼리하지 않습니다.

따라서, 예를 들어 구글에서 근무

# Any reference properties not loaded yet 
customer = Customer.get_by_id(1) 
print customer.name 
print customer.address 

# Assuming customer.order is a ReferenceProperty, now is when it 
# would be loaded from the datastore. 
print customer.order.created_at 
+5

관심 대상 :'ReferenceProperty' 속성에 의해 생성 된 역 참조는 실제로'Query' 인스턴스이므로 부모 엔티티를 참조하는 엔티티의 서브셋을 쿼리 할 수도 있습니다 :'customer.orders.filter ('company ','ACME '). order ('- created '). fetch (10)' – Blixt

+0

ReferenceProperty 필드의 반대쪽 끝에 자동으로 생성 된 쿼리에 대한 좋은 지적. –

관련 문제