【问题标题】:deleting relationships in ndb entities (Google App Engine)删除 ndb 实体中的关系(Google App Engine)
【发布时间】:2014-10-11 20:06:38
【问题描述】:

我正在实施一个基于 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)

命令被执行但元素没有被移除。我做错了什么?

【问题讨论】:

  • 只是要清楚,因为您没有在示例中显示它。你在a1.bObjects.remove(b2.key)之后做a1.put()吗?
  • 太棒了!我总是要放它!谢谢!
  • 太棒了,到时候我会回答的。
  • 事实上我从 b2 得到 a1 就像 b2.aObject.get().bObjects.remove(b2.key) 并且我没有意识到我也必须做 b2.aObject.get( ).put()

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


【解决方案1】:

如上面的 cmets 所示,您始终需要调用 put() 方法来保存更改并将其发送回 Datastore。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多