0

在通过谷歌应用程序引擎部署的python中处理应用程序。更新创建一个新的实体,而不是更新Google的数据存储上的当前实体

这是我用来做更新的代码。

key = ndb.Key('User', uid) 
     user = key.get() 
     if not user: 
      logging.info("Creating new user...") 
      user = M.User(id=uid) 
     user.remind = tmp 
     user.put() 

不是更新旧实体,而是使用键作为名称字段中的键创建新实体。正如下面 名称看出/ ID classNo创建first_name的GROUPID姓氏特别提醒更新的用户名

ID = 133877436 0 2016年8月13日(15:16:04.890)HKT JIACHENNN空真2016年8月13日(15:19:49.055 )HKT

名= 133877436 -1 2016年8月13日(15:19:52.590)HKT空空空真2016年8月13日(15:19:52.590)HKT空

感谢任何帮助!

UPDATE /解决

通过取得实体时使用INT(UID)来解决它。这是创建一个新的实体,因为这两个键是不同的。其中一个是133877436,因此名字被叫做“133877436”。

希望这有助于别人

如果要更新一个实体,你应该找回他的id这个实体
+0

你不显示这个代码是如何被调用,但'ID = 133866436'是一个长期的,'名称= 133866436'是一个字符串,因此使用不同的密钥。如果密钥不同,实体将会不同。 – tx802

+1

@jiachen:你应该用解决方案为你的问题添加一个答案 - 不要让问题显得没有答案。 –

回答

0

,那么你就可以改变旧的价值。对于为例:

entity_to_edit = Entity.get_by_id(this_entit_id) 
entity_to_edit.some_attribute = "new_variable" 
entity_to_edit.put() 
相关问题