30

protorpc当我使用端点时,我遇到了一些奇怪的错误。在这段代码中:

class Application(EndpointsModel):

    _message_fields_schema = ('id', 'name')

    created = ndb.DateTimeProperty(auto_now_add=True)
    name = ndb.StringProperty()
    roles = ndb.IntegerProperty(repeated=True)
    updated = ndb.DateTimeProperty(auto_now=True)
    owner = ndb.KeyProperty(kind='User')

@API.api_class(resource_name="application")
class ApplicationApi(protorpc.remote.Service):

    @Application.method(http_method="GET",
                        request_fields=('id',),
                        name="get",
                        path="applications/{id}")
    def ApplicationGet(self, instance):
        if not instance.from_datastore:
            raise endpoints.NotFoundException("Application not found.")
        return instance

    @Application.query_method(http_method="GET",
                              query_fields=('limit', 'order', 'pageToken'),
                              name="list",
                              path="applications")
    def ApplicationList(self, query):
        return query

当我调用application.get()错误如下:(完整的跟踪here):

TypeError:只能从确切类型应用程序的实体中复制。收到应用程序的实例。

并且调用application.list()错误如下:(此处为完整跟踪):

<class '.Application'>ValidationError:找到字段项的预期类型<Application name: u'test'>(类型<class '.Application'>

这可能是什么原因造成的?我的其他具有几乎相同代码(只是属性不同)的模型工作正常。

4

1 回答 1

1

子类class JsonModel(EndpointsModel),使其重新开始工作。

于 2018-01-01T20:59:01.917 回答