2010-07-22 9 views
0

我遇到了一个特定的查询问题。它需要在一个事务中运行,并且它,但每当应用程序引擎执行我的查询我收到以下错误:在谷歌应用程序引擎,我该如何摆脱'只允许内部交易的祖先查询'错误?

Only ancestor queries are allowed inside transactions

你会看到我的查询是否有一个祖先。那么,应用引擎真的在抱怨什么?

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

您能否展示更多的代码:您是否正在做可能正在访问不同实体组的事务内的其他任何内容? – Duncan 2010-07-22 09:43:49

回答

5

这条线:

q.ancestor = db.Key.from_path(aggrRootKind, aggrRootKeyName) 

应改为:

q.ancestor(db.Key.from_path(aggrRootKind, aggrRootKeyName)) 

祖先()是一个方法,并在第一个片段,您要更换它,而不是调用它。

+0

ARG,傻傻的我。我一直这样做。感谢您指出我的错误:) – willem 2010-07-23 04:55:26

相关问题