删除ndb实体中的关系(Google App Engine)

时间:2014-10-11 20:06:38

标签: python google-app-engine google-cloud-datastore app-engine-ndb

我正在实施基于Google App Engine的Web应用程序。 该应用程序使用ndb,并且有两个实体(比如A和B),在A类模型中通过此属性实现了一对多关系

 bObjects = ndb.KeyProperty(repeated=True);

我有一个A(a1)的实例与三个B实例(b1,b2,b3)的关系 我想删除b2。 为此我试图以这种方式将其从与a1的关系中删除

  a1.bObjects.remove(b2.key)

执行该命令但不删除该元素。我做错了什么?

1 个答案:

答案 0 :(得分:3)

如上面的评论中所示,您始终需要调用put()方法来保存并将更改发送回数据存储区。

在您的示例中,保存更改的正确代码是:

  a1.bObjects.remove(b2.key)
  a1.put()