我正在尝试插入Category对象,但我喜欢使用Store ID将Category链接到Store。该ID由endpoints-proto-datastore提供。我怎么能这样做?
实际上,要保存类别,API需要类别名称和商店密钥。
这是我的api方法:
@Category.method(user_required=True,
request_fields=('name'),
path='{store}/categories',
http_method='POST',
name='categories.insert')
def insertCategory(self, category):
"""
Insert a category in a existing store.
"""
category.put()
return category
这是我的分类模型:
class Category(EndpointsModel):
_message_fields_schema = ('id', 'name', 'store')
name = ndb.StringProperty(required=True)
store = ndb.KeyProperty(Store)
这是我的商店模型:
class Store(EndpointsModel):
_message_fields_schema = ('id', 'name')
name = ndb.StringProperty(required=True)
答案 0 :(得分:0)
假设您已经拥有要包含在Category实体中的Store实体,请确保使用Store key实体而不是id。您可以在数据存储区查看器(旧版本)中找到关键实体。
如果您添加了entityKey默认属性,那么您可以获取实体查询中的密钥。
class Store(EndpointsModel):
_message_fields_schema = ('id', 'entityKey', 'name')
name = ndb.StringProperty(required=True)