简单PUT不修改模型

时间:2014-10-31 20:52:11

标签: endpoints-proto-datastore

路由如下所示,我可以确认请求是否正在路由,但是,当我希望模型参数是具有更新属性的模型时,模型参数是当前保存的模型。

@Page.method(request_fields=('id',),
             path='page/{id}', http_method='PUT', name='page.udpate')
def PageUpdate(self, model):
    if not model.from_datastore:
        raise endpoints.NotFoundException('MyModel not found.')
        model.put()
    return model

1 个答案:

答案 0 :(得分:0)

request_fields字段指定请求中包含的内容,因此您需要包含更多内容。 _message_fields_schema属性(在simple_get示例中讨论)最好使用。

class Page(EndpointsModel):

  _message_fields_schema = ('id', ... other properties)

然后只使用默认值:

@Page.method(path='page/{id}', http_method='PUT', name='page.update')
def PageUpdate(self, page):
    if not page.from_datastore:
        raise endpoints.NotFoundException('Page not found.')
        page.put()
    return page

注意:我还更改了'page.udpate'的拼写和错误消息中的文本。