-1

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

4

1 に答える 1

2

ユース ケース (メソッド内のエンティティにアクセスしたい) では、_pre_delete_hook の方が理にかなっています。http://code.google.com/appengine/docs/python/ndb/modelclass.html#Model__pre_delete_hookを参照してください。

于 2012-03-07T18:26:14.783 に答える