如何清除ndb属性

2024-09-27 00:21:43 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的应用程序中,我需要删除一些我的模型属性。
我签了this link,但第一个问题是属性在polymodel上,我不可能切换到expando来删除属性,我甚至不知道如果我将polymodel更改为expando会发生什么。在

那么如何从现有实体中删除属性呢?在

我正在考虑将所有StringProperty设置为None,然后从模型模式中删除这些并重新部署。 其中一个属性是BooleanProperty,我不能把它设置为None对吗?! 或者一个ndb.PickleProperty。。。我该如何删除它?在

有人知道怎么把这件事做好吗?在


Tags: 模型实体none应用程序属性模式linkthis
1条回答
网友
1楼 · 发布于 2024-09-27 00:21:43

如果你想更新所有的实体,推荐的方法是一个读取和重写所有实体的map/reduce作业;但是这可能不值得,这取决于你有多少数据map/reduce也不是免费的。在

另外,请确保在一小部分数据上测试map/reduce作业。从实体中真正删除属性是非常微妙的,即使它不再在model类中了!最佳方法可能是:

if 'propname' in ent._properties:
  del ent._properties['propname']
  ent.put()

相关问题 更多 >

    热门问题