我有以下代码删除实体:(我在Google App Engine中使用Python)
id = request.POST.get('id')
user = ndb.Key(urlsafe=id).get()
user.key.delete()
但它没有被删除。请帮忙。
答案 0 :(得分:1)
你看起来至少可能只是观察“最终的一致性”,但却某种程度上期待“强烈的一致性”。要检查,你可以做例如
checking = user.key.get()
assert checking is None
在user.key.delete()
之后验证它是否有效。
get
上的 Key
非常一致,因此assert
应该正常运行。
请注意,一般情况下,查询上的get
仅最终一致 - https://www.youtube.com/watch?v=s6EaoPMANQM&t=1m15s - 所以如果这就是你的'重新使用检查,可能会误导你。 (如果确实需要在查询上具有很强的一致性,则需要为所有实体提供一个共同的祖先,并进行祖先查询。)