在谷歌应用程序引擎上,我如何摆脱'只有祖先查询允许内部交易'错误?

wil*_*lem 0 python google-app-engine pydev

我遇到一个特定查询的问题.它需要在事务中运行,并且确实如此,但每当app引擎执行我的查询时,我都会收到以下错误:

在事务内只允许祖先查询

你会看到我的查询有一个祖先.那么app引擎真正抱怨的是什么?

    q = db.Query(EventBase)
    q.ancestor = db.Key.from_path(aggrRootKind, aggrRootKeyName)
    q.filter('undone =','False')
    q.order('-version')
    qResult = q.fetch(1, 0)
Run Code Online (Sandbox Code Playgroud)

Nic*_*son 5

这一行:

q.ancestor = db.Key.from_path(aggrRootKind, aggrRootKeyName)
Run Code Online (Sandbox Code Playgroud)

应该读:

q.ancestor(db.Key.from_path(aggrRootKind, aggrRootKeyName))
Run Code Online (Sandbox Code Playgroud)

ancestor()是一种方法,在第一个片段中,您将替换它,而不是调用它.