我已经阅读,阅读并再次阅读文档并在Web上进行了许多搜索,但我还不明白为什么我的应用程序无法正常工作。 当用户连接时,他必须填写表格。这个代码有效。当用户注销然后登录时,表单字段将填充其信息。因此,数据被正确保存。但是,当用户更改表单字段值并提交表单时,数据不会更新。
我的模特:
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('/')
答案 0 :(得分:3)
问题是您要添加新记录而不是更新现有记录。对于您的代码,最简单的解决方法是更改此:
if member.count(1) > 0:
m = Members(account=user)
为:
if member.count(1) > 0:
m = member[0]
您的代码更新现有记录的原因是您尚未分配密钥。要了解有关密钥的更多信息,您可以在Kinds and Identifiers中了解密钥。