문제

엔티티의 자녀가 쿼리에서 사용할 수 있습니까?

주어진:

class Factory(db.Model):
    """ Parent-kind """
    name = db.StringProperty()

class Product(db.Model):
    """ Child kind, use Product(parent=factory) to make """
    @property
    def factory(self):
        return self.parent()
    serial = db.IntegerProperty()

500 개의 공장이 총 250,000 개의 제품을 위해 500 개의 제품을 생산했다고 가정합니다. 특정 공장에서 만든 500 개의 제품 만 반환 할 리소스 효율적인 쿼리를 형성하는 방법이 있습니까? 조상 방법은 필터이므로 eg product.all (). 조상 (infactory_1)을 사용하려면 데이터 저장소에 반복적 인 호출이 필요합니다.

도움이 되었습니까?

해결책

조상은 "필터"로 묘사되지만 실제로 조상 조건을 추가하기 위해 쿼리를 업데이트합니다. 쿼리를 반복 할 때까지 요청을 보내지 않으므로 잘 작동합니다.

그러나 한 가지 사소한 요점 : 동일한 부모가있는 500 개 엔티티가 확장 성을 해칠 수 있습니다. 쓰기는 엔티티 그룹의 구성원에게 직렬화되기 때문입니다. 제품을 만든 공장을 추적하려면 ReferenceProperty를 사용하십시오.

class Product(db.Model):
   factory = db.ReferenceProperty(Factory, collection_name="products")

그런 다음 다음을 사용하여 모든 제품을 얻을 수 있습니다.

myFactory.products
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top