我在DataStore模型中有父子关系:Building
实体,引用实体为Office
。我在Building
模型上执行查询,我想在JSON响应中限制Office
实体的字段。
这是我的代码:
@Building.query_method(collection_fields=('id', 'name', 'office'), path='buildings', name='list')
def List(self, query):
return query
collection_fields
属性仅适用于定义父实体字段(Building),但如何限制子实体的字段?
以下是我在JSON中的回复消息:
{ id : 5
name : 'building name'
office: {
name: 'office name',
field1 : 'test',
field1 : 'test',
field1 : 'test'
}
}
我想从Office
对象中删除一些字段(即field1,field2等)以减少JSON响应大小。
定义有限_message_fields_schema
的{{1}}对象不是一个好方法,因为它可以全局工作。我想只格式化这个查询。
答案 0 :(得分:1)
您可以在EndpointsAliasProperty
模型中创建Building
,您可以在其中转换self.office
并在collection_fields
中使用该值:
@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