1

对不起我的无知,但我的期望是这会奏效:

from google.appengine.ext import ndb
from models import myModels

delete_futures = []
delete_futures.append(ndb.delete_multi_async(myModels.Kind1.query().fetch(999999, keys_only=True)))
delete_futures.append(ndb.delete_multi_async(myModels.Kind2.query().fetch(999999, keys_only=True)))

ndb.Future.wait_all(delete_futures)

但它会抛出“TypeError:列表对象是不可散列的”。

4

2 回答 2

4

也许使用 .extend 创建单个列表而不是列表列表?

等到通过列表中的所有期货都完成。

没想到您可能会通过列表。

delete_futures = []
delete_futures.extend(ndb.delete_multi_async(myModels.Kind1.query().fetch(999999,          keys_only=True)))
delete_futures.extend(ndb.delete_multi_async(myModels.Kind2.query().fetch(999999, keys_only=True)))

https://developers.google.com/appengine/docs/python/ndb/futureclass#Future_wait_all

于 2012-10-04T18:25:39.293 回答
1

每次调用delete_multi_async都会返回一个期货列表,因此您的delete_futures列表是一个列表列表。append将您的 s更改为extend它应该可以工作

于 2012-10-04T18:26:21.167 回答