0

カテゴリ オブジェクトを挿入しようとしていますが、ストア ID を使用してカテゴリをストアにリンクしたいと考えています。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)  
4

1 に答える 1

0

Category エンティティに含めたい Store エンティティが既にあると仮定すると、ID ではなく Store キー エンティティを必ず使用してください。キー エンティティは、データストア ビューアー (旧バージョン) で見つけることができます。

次のように entityKey デフォルト プロパティを追加すると、エンティティのクエリでキーを取得できます。

class Store(EndpointsModel):
    _message_fields_schema = ('id', 'entityKey', 'name')
    name = ndb.StringProperty(required=True)
于 2015-01-28T05:24:12.347 に答える