0

我在DataStore模型中有亲子关系:Building实体参考实体Office。我对Building模型执行查询,我想限制在JSON响应中Office实体的字段。 这里是我的代码:具有端点的GAE NDB Proto数据存储区:如何格式化参考属性的响应字段?

@Building.query_method(collection_fields=('id', 'name', 'office'), path='buildings', name='list') 
def List(self, query): 
    return query 

collection_fields属性的伟大工程仅定义父实体领域(大厦),但如何限制孩子实体的领域?

这里是在我的JSON响应消息:

{ id : 5 
    name : 'building name' 
    office: { 
     name: 'office name', 
     field1 : 'test', 
     field1 : 'test', 
     field1 : 'test' 
    } 
} 

我想从Office对象中删除某些字段(即FIELD1,FIELD2等),以减少JSON响应大小。 定义有限_message_fields_schemaOffice对象不是很好的解决方案,因为它在全局工作。我想只格式化这个单个查询。

回答

1

您可以在Building模型,在那里你可以改变self.office并使用collection_fields该值来创建EndpointsAliasProperty

@EndpointsAliasProperty 
def office_ltd(self): 
    limited = doSomethingWith(self.office) 
    return limited 

@Building.query_method(collection_fields=('id', 'name', 'office_ltd'), 
         path='buildings', name='list') 
def List(self, query): 
    return query