我正在尝试定义一个id
不区分大小写但保留大小写的模型,以下几乎可以工作:
class MyModel(endpoints_ndb.EndpointsModel):
_message_fields_schema = ('id', 'name')
caseful_id = ndb.StringProperty(indexed=False)
name = ndb.StringProperty(required=True)
def IdSet(self, value):
if not isinstance(value, basestring):
raise TypeError('ID must be a string.')
self.caseful_id = value
self.UpdateFromKey(ndb.Key(self.__class__, value.lower()))
@endpoints_ndb.EndpointsAliasProperty(setter=IdSet)
def id(self):
return self.caseful_id
创建一个新实例存储id
in 小写,原始大写 in caseful_id
,并获取列表返回原始大写,但通过以下方式请求特定模型id
:
@MyModel.method(request_fields=('id',), path='mymodel/{id}',
http_method='GET', name='mymodel.get')
def MyModelGet(self, mymodel):
if not mymodel.from_datastore:
raise endpoints.NotFoundException('MyModel not found.')
return mymodel
总是返回id
请求中给出的相同大小,大小写相同。有没有办法让它真正调用id
getter函数?