我有以下 2 ndb 模型
from endpoints_proto_datastore.ndb import EndpointsModel
class Foo(EndpointsModel):
attr1 = ndb.StringProperty(required=True)
class Bar(EndpointsModel):
attr1 = ndb.KeyProperty('Foo', required=True)
attr2 = ndb.KeyProperty('Foo', required=True)
如您所见,Bar 有几个对 Foo 的引用。
现在,当我为每个引用分配值时,第二个替换第一个,并且只有它被存储到数据库中,最有趣的是,当使用 dev_appserver 数据存储查看器查找时,该属性位于名称“Foo”下,不在第二个属性的名称下,它取代了第一个。
插入后这是我所期望的
Bar(key=Key('Bar', xxxxxxxxxxxxxxxx), attr1=Key('Foo', xxxxxxxxxxxxxxxx), attr2=Key('Foo', xxxxxxxxxxxxxxxx)
但我只得到
Bar(key=Key('Bar', xxxxxxxxxxxxxxxxxx), attr2=Key('Foo', xxxxxxxxxxxxxxxx))
在数据存储查看器中,
Entity Kind Bar
Entity Key xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ID xxxxxxxxxxxxxxxx
Foo (Key) xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Foo: id=xxxxxxxxxxxxxxxx