如果我有一个带有订单列表的Customer对象,则使用db.ReferenceProperty
声明过了一段时间我可能会在那里有大量的订单,如果我拉客户对象,我会有拉动整套订单的危险吗?
答案 0 :(得分: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