Google App Engine NDB - 用于本地开发但不在生产中的查询的游标

时间:2017-08-15 06:56:59

标签: python google-app-engine app-engine-ndb

我有一个问题。我用一个光标调用一个查询,该游标第一次被设置为Cursor()。我从查询中获取了50个项目

result, next_cursor, more = qry.fetch_page(pagination, start_cursor=cursor)

我将qry返回给调用类并运行以下fetch

client_params['next_page'] = next_cursor.urlsafe()

这没有问题,然后我使用光标执行以下操作,并根据文档将其传递回客户端:

cursor = Cursor(urlsafe=page)

我已经记录了这个光标,以确保它在返回服务器上是相同的,它是

我明白了:

BadRequestError: cursor position is outside the range of the original query

然而,第二次尝试检索接下来的50个或更少的项目总是会导致以下错误:

Dimensions.width

现在整个过程在本地开发机器上正常工作,但在生产中却没有。

1 个答案:

答案 0 :(得分:0)

我怀疑您的问题来自cls.user != exclude_user查询参数。

来自Limitations of cursors(是的,我在已取代的db文档中知道它,但我非常确定它也适用于ndb - 相同的限制are present in java as well,他们可能在数据存储方面,而不是在客户端库方面):

  
      
  • 由于!=IN运算符是使用多个查询实现的,因此使用它们的查询不支持游标。
  •   

确认尝试删除该查询参数。

至于为什么它只在生产中发生 - 开发服务器仿真可能不会涵盖这些细节。