GAE创建和撤消PropertyOrder

时间:2018-02-01 19:48:52

标签: python google-app-engine

我想创建一个支持分页查询的方法

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

1 个答案:

答案 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进行魔术。