2013-06-23 29 views
1

在谷歌的AppEngine模型对象执行的功能,我们已经。把()和put_async(),这被称为保存的模型对象。 ()。如何在保存在谷歌的AppEngine

作为新GAE,目前尚不清楚对我,我怎么能保证一些功能被执行每次我同一个对象。

在香草Django中,我可以使用的信号,或者覆盖.save()方法。

我将如何实现在GAE上类似的结果,考虑到我其实可以依靠。把()被调用时,对象被保存的?

回答

0

有几种方法可以完成此操作。你可以用你自己的代码覆盖put方法。只要确保将模型称为超级放()。

不过,我会选择的路线是执行后把挂钩(假设你使用NDB)。请参阅钩子方法文档:https://developers.google.com/appengine/docs/python/ndb/modelclass

+0

我在其他地方读过.put()并不总是被调用,例如在批量更新中。 至于第二个,我没有使用ndb,也不确定这将意味着什么迁移。 – pwalsh

+0

关于批量更新以及您未使用ndb,请查看Nick Johnson的博客文章:http://blog.notdot.net/2010/04/Pre--and-post--put-hooks-for -Datastore-models – Jesse

+0

好吧,这看起来像一个可行的解决方案,与当前的代码库,谢谢你的提示。 – pwalsh