我有一个问题。我用一个光标调用一个查询,该游标第一次被设置为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
现在整个过程在本地开发机器上正常工作,但在生产中却没有。
答案 0 :(得分:0)
我怀疑您的问题来自cls.user != exclude_user
查询参数。
来自Limitations of cursors(是的,我在已取代的db
文档中知道它,但我非常确定它也适用于ndb
- 相同的限制are present in java as well,他们可能在数据存储方面,而不是在客户端库方面):
- 由于
!=
和IN
运算符是使用多个查询实现的,因此使用它们的查询不支持游标。
确认尝试删除该查询参数。
至于为什么它只在生产中发生 - 开发服务器仿真可能不会涵盖这些细节。