我想创建一个支持分页查询的方法
def page(cls, query, order, prev_str, next_str, count):
我想将排序作为参数传递给
在某些地方,我想使用相同的顺序,在其他地方,我想使用反向排序。
我的问题是,当我将顺序作为反向(-Obj.value
)传递时,我不能再在方法中反转它。它将是--Obj.value
,它给出了
TypeError: bad operand type for unary -: 'PropertyOrder'
还有另一种逆转订单的方式吗?
也许来自PropertyOrder
对象?
在哪种情况下,有没有办法从PropertyOrder
创建*Property
?
order = -Obj.value
的类型为PropertyOrder
order = Obj.value
的类型为*Property
答案 0 :(得分:0)
为什么你不能做这样的事情?
query1 = Account.query()
if order == 'desc':
query2 = query1.order(-Account.userid)
else:
query2 = query1.order(Account.userid)
......等甚至可以使用GQL语法,您可以直接告诉它:
...ORDER BY userid ASC
请参阅:https://cloud.google.com/appengine/docs/standard/python/datastore/gqlreference#Syntax
更新
如果您尝试在多页查询(使用游标)的中间反转某个页面,.fetch
将光标查询作为列表,则在发送到浏览器之前list.reverse()
它。或者,在浏览器中使用javascript进行魔术。