1

我已阅读、阅读并再次阅读文档并在网上进行了多次搜索,但我还不明白为什么我的应用程序无法正常工作。当用户连接时,他必须填写表格。此代码有效。当用户注销然后登录时,表单字段将填充他的信息。因此,数据已正确保存。但是,当用户更改表单字段值并提交表单时,数据不会更新。

我的模型:

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('/')
4

1 回答 1

3

问题是您要添加新记录而不是更新现有记录。对于您的代码,最简单的解决方法是更改​​它:

if member.count(1) > 0:
    m = Members(account=user)

至:

if member.count(1) > 0:
    m = member[0]

您的代码更新现有记录的原因是您尚未分配密钥。要了解有关键的更多信息,您可以在Kinds and Identifiers中了解它们。

于 2012-04-21T07:00:55.713 回答