代码之家  ›  专栏  ›  技术社区  ›  willem

在googleappengine上,如何消除“事务中只允许祖先查询”错误?

  •  0
  • willem  · 技术社区  · 14 年前

    我有一个具体的问题。它需要在事务中运行,确实如此,但是每当应用程序引擎执行我的查询时,我会得到以下错误:

    只允许祖先查询

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

        q = db.Query(EventBase)
        q.ancestor = db.Key.from_path(aggrRootKind, aggrRootKeyName)
        q.filter('undone =','False')
        q.order('-version')
        qResult = q.fetch(1, 0)
    
    1 回复  |  直到 14 年前
        1
  •  5
  •   Nick Johnson    14 年前

    这条线:

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

    应为:

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

    祖先()是一个方法,在第一个代码段中,您将替换它,而不是调用它。