查询后如何删除ndb.model?

时间:2015-03-20 06:49:47

标签: python google-app-engine

我有以下代码删除实体:(我在Google App Engine中使用Python)

id = request.POST.get('id')
user = ndb.Key(urlsafe=id).get()
user.key.delete()

但它没有被删除。请帮忙。

1 个答案:

答案 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 - 所以如果这就是你的'重新使用检查,可能会误导你。 (如果确实需要在查询上具有很强的一致性,则需要为所有实体提供一个共同的祖先,并进行祖先查询。)