2013-06-23 1 views
1

В Google AppEngine у ​​нас есть .put() и put_async(), которые вызываются для сохранения объекта модели.().Как выполнить функциональные возможности для сохранения объекта модели в Google AppEngine

Будучи новым для GAE, мне не ясно, как я могу гарантировать, что некоторые функции выполняются каждый раз, когда я один и тот же объект.

В vanilla Django я могу использовать сигналы или переопределять метод .save().

Как достичь аналогичных результатов в GAE, учитывая, что я могу фактически полагаться на вызов .put(), когда объект сохраняется?

ответ

0

Существует несколько способов сделать это. Вы можете переопределить метод put с помощью собственного кода. Просто не забудьте назвать модели super put().

Тем не менее, маршрут, который я выбрал бы, - это реализовать крюк для почтового ящика (при условии, что вы используете NDB). См. Документацию по методу hook здесь: 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