2013-06-23 48 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