0

我正在尝试解决一个错误。以下函数将 Key 对象添加到用户的名为 tabs 的属性中。由于某种原因,在调用put()用户实体后,新添加的密钥没有保存。想不通为什么。也许有一些延迟会阻止更改立即出现?在那种情况下,memcache 是解决方案吗?

class User(GeoModel):
    tabs = db.ListProperty(db.Key)

@db.transactional
def add_tab_transaction(self, user_key, tab_key):
    user = models.User.get(user_key)
    user.tabs.append(tab_key)
    user.put()
    logging.debug('tabs this user has:')
    logging.debug(user.tabs) # prints the list with the new value
    user = models.User.get(user_key)
    logging.debug('rechecking the same thing:')
    logging.debug(user.tabs) # prints the list without the new value
4

1 回答 1

0

此行为在Isolation and Consistency中进行了解释。

“在事务中,所有读取都反映了事务开始时数据存储的当前、一致状态。这不包括事务中先前的放置和删除。”

于 2012-05-27T18:56:42.050 回答