私はこのドキュメントを再度読んだり読んだり読んだり、Web上で多くの検索を行ったりしていますが、なぜ私のアプリケーションが正しく動作しないのか分かりません。 ユーザーが接続すると、フォームを記入する必要があります。このコードは動作します。ユーザーがログアウトしてからログインすると、フォームフィールドに情報が入力されます。したがって、データは正しく保存されます。しかし、ユーザーがフォームフィールド値を変更してフォームを送信すると、データは更新されません。Google App Engine with Python:データエンティティを更新することができません
マイモデル:
class Members(db.Model):
account = db.UserProperty()
hashtags = db.StringProperty()
ここではフォームを送信するクラス:
class Submit(webapp.RequestHandler):
def post(self):
user = users.get_current_user()
if user:
url = users.create_logout_url('/')
url_linktext = 'Logout'
member = db.GqlQuery("SELECT * FROM Members WHERE account = :1", user)
if member.count(1) > 0:
m = Members(account=user)
m.hashtags = ','.join([
self.request.get('hashtag1'),
self.request.get('hashtag2'),
self.request.get('hashtag3')])
m.put()
else:
member = Members()
member.account = user
member.hashtags = ','.join([
self.request.get('hashtag1'),
self.request.get('hashtag2'),
self.request.get('hashtag3')])
member.put()
self.redirect('/')
else:
self.redirect('/')
基本的に何が起こっているかは、メンバーを更新する前にメンバーを取得していないことです。 gqlqueryを使用して既存のメンバーがあるかどうかを確認していますが、 'm = member.get() 'の代わりに' m = Member(account = user) 'を使用して新しいエンティティを作成します。 – aschmid00
ありがとうございました。私の問題は解決されました。 – tsil