各エンティティがプロパティとしてユーザー情報と2つの文字列を持つndbデータベースを使用するGAE上のWebアプリがあります.Entityクラスは以下のようなものです
class UserPlus(ndb.Model):
user = ndb.UserProperty()
dogName = ndb.StringProperty(indexed=False)
catName = ndb.StringProperty(indexed=False)
dogName
メイン ページは、そのユーザーに対応するエンティティが既に存在するかどうかを確認し、存在する場合は、文字列およびの値を表示しますcatName
。
次に、ユーザーが と の値を更新できるフォームがありdogName
ますcatName
。これは別のページへの POST リクエストを実行し、以下のメソッドはエンティティを更新します
def post(self):
currentUser = users.get_current_user()
up = UserPlus.query(UserPlus.user==currentUser).get()
up.dogName = self.request.get('dog_name')
up.catName = self.request.get('cat_name')
weatherUser.put()
self.redirect('/')
しかし、メイン ページにリダイレクトされると、ページを更新するまで と の値は更新されませんdogName
。catName
同じ位置でメソッドを 1 回ではなく 2 回呼び出すことでput()
、これはもう発生しないことがわかりましたが、明確な理由はわかりません。
私は何か間違ったことをしていますか、それともndbがどのように機能するはずですか?