访问Appengine NDB中已删除的实体

时间:2012-03-07 17:21:02

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

我在Appengine项目中使用NDB。在删除某个实体后,我正在使用_post_delete_hook进行一些操作。在这种方法中我有钥匙。但是当我执行key.get()时出现错误。 这是一些示例代码。

[friends/models.py]

from ndb import models
from users.models import User

class FriendShip(models.Model):
    user = models.KeyProperty(kind=User)
    friend = models.KeyProperty(kind=User)

    @classmethod
    def _post_delete_hook(cls, key, future):
        signals.post_delete.send(cls, instance=key)

[some-other-filer.py]

# connected method to post_detele_hook
def ended_friendship(sender, **kwargs):
    key = kwargs.get('instance', None)
    if key:
        user = key.get().user # raise a non existing entity error

一些帮助?

这是关于钩子的文档。 http://code.google.com/appengine/docs/python/ndb/entities.html#hooks

1 个答案:

答案 0 :(得分:2)

对于您的用例(想要访问方法中的实体),_pre_delete_hook可能更有意义。请参阅http://code.google.com/appengine/docs/python/ndb/modelclass.html#Model__pre_delete_hook