【问题标题】:On the google app engine, how do I get rid of the 'Only ancestor queries are allowed inside transactions' error?在谷歌应用引擎上,如何摆脱“事务中只允许祖先查询”错误?
【发布时间】:2011-03-19 08:41:35
【问题描述】:

我在处理一个特定查询时遇到了问题。它需要在事务中运行,并且确实如此,但是每当应用程序引擎执行我的查询时,我都会收到以下错误:

只允许祖先查询 内部交易

您会看到我的查询确实有祖先。那么应用引擎到底在抱怨什么?

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

【问题讨论】:

  • 您能否再显示一些代码:您是否在事务中执行任何其他可能访问不同实体组的操作?

标签: python google-app-engine pydev


【解决方案1】:

这一行:

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

应改为:

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

ancestor() 是一个方法,在第一个 sn-p 中,您正在替换它,而不是调用它。

【讨论】:

  • ARG,我真傻。我一直这样做。感谢您指出我的错误:)
猜你喜欢
  • 2012-07-20
  • 1970-01-01
  • 2012-07-06
  • 1970-01-01
  • 1970-01-01
  • 2011-05-29
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
相关资源
最近更新 更多