Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python的Google App Engine:无法更新数据实体_Python_Django_Google App Engine - Fatal编程技术网

使用Python的Google App Engine:无法更新数据实体

使用Python的Google App Engine:无法更新数据实体,python,django,google-app-engine,Python,Django,Google App Engine,我读了,读了,又读了一遍文档,在网上做了很多搜索,但我还不明白为什么我的应用程序不能正常工作。 当用户连接时,他必须填写表单。这个代码是有效的。当用户注销,然后登录时,表单字段将填充他的信息。因此,数据已正确保存。但是,当用户更改表单字段值并提交表单时,数据不会更新 我的模型: 以下是提交表格的班级: 问题是您正在添加新记录,而不是更新现有记录。对于您的代码,最简单的修复方法是更改以下内容: if member.count(1) > 0: m = Members(account

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

我的模型:

以下是提交表格的班级:


问题是您正在添加新记录,而不是更新现有记录。对于您的代码,最简单的修复方法是更改以下内容:

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


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

或使其更具可读性
member.get()
而不是
成员[0]
基本上,您在更新之前没有获得成员。您正在使用gqlquery查看是否存在现有成员,但随后您使用
m=Member(account=user)
创建了一个新实体,而不是使用
m=Member.get()
非常感谢。我的问题解决了。
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('/')
if member.count(1) > 0:
    m = Members(account=user)
if member.count(1) > 0:
    m = member[0]