0

我在 DataStore 模型中有父子关系:Building实体与Office. 我对模型执行查询Building,我想限制OfficeJSON 响应中的实体字段。这是我的代码:

@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对象不是好的解决方案,因为它在全局范围内有效。我只想格式化这个单一的查询。

4

1 回答 1

1

您可以EndpointsAliasPropertyBuilding模型中创建,您可以在其中转换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
于 2016-03-02T05:38:06.990 回答