Python 有没有办法判断ndb中的预挂是否是第一次保存?

Python 有没有办法判断ndb中的预挂是否是第一次保存?,python,google-app-engine,app-engine-ndb,Python,Google App Engine,App Engine Ndb,我想在模型创建上运行一些东西,但不想在模型更新上运行。我可以通过添加属性来实现这一点,但我想知道是否有某种内置功能专门针对创建和更新。任何已存储的实体都有一个密钥,因此检查该密钥将告诉您它是新的还是正在更新 您需要检查“pre\u put\u”挂钩内的模型密钥中是否存在ID 如果查看ndb模型类的源代码,您可以看到在调用_pre_put_钩子之前实际上创建了一个键并将其分配给模型实例,但该键没有ID。在_pre_put_钩子中的这段代码应该可以工作: def _pre_put_hook(self

我想在模型创建上运行一些东西,但不想在模型更新上运行。我可以通过添加属性来实现这一点,但我想知道是否有某种内置功能专门针对创建和更新。

任何已存储的实体都有一个密钥,因此检查该密钥将告诉您它是新的还是正在更新


您需要检查“pre\u put\u”挂钩内的模型密钥中是否存在ID

如果查看ndb模型类的源代码,您可以看到在调用_pre_put_钩子之前实际上创建了一个键并将其分配给模型实例,但该键没有ID。在_pre_put_钩子中的这段代码应该可以工作:

def _pre_put_hook(self):
    if self.key.id() is None:
        print 'model has not been saved'
    else:
        print 'model has been saved'