在Odoo 8 ORM api中,如何使用search()以相反的顺序获得结果?

Nat*_*han 8 python python-2.7 python-3.x odoo odoo-8

我尝试用来search()从http控制器中的表中获取数据.

 x = obj.search(cr, uid, criteria, offset=0,limit=36,order=sortBy)
Run Code Online (Sandbox Code Playgroud)

它返回一个数组,其中包含排序前36个项目的ID,sortBy但总是按递增顺序排列.但是如何使用递减顺序?

Emi*_*td. 13

搜索

采用搜索,返回匹配记录的记录集.可以返回匹配记录的子集(偏移和限制参数)并进行排序(顺序参数):

句法:

search(args[, offset=0][, limit=None][, order=None][, count=False])
Run Code Online (Sandbox Code Playgroud)

参数:

  • args - 搜索域.使用空列表匹配所有记录.
  • offset(int) - 要忽略的结果数(默认值:无)
  • limit(int) - 要返回的最大记录数(默认值:全部)
  • order(str) - 排序字符串
  • count(bool) - 如果为True,则只计算并返回匹配记录的数量(默认值:False)

返回:返回与搜索条件匹配的记录,最多为limit.

引发AccessError:如果用户试图绕过对请求对象的读取的访问规则.

您只需按以下方式按降序搜索.

    sortBy = "field_name desc"
     x = obj.search(cr, uid, criteria, offset=0,limit=36,order=sortBy)

    ###Or you can define directly
     x = obj.search(cr, uid, criteria, offset=0,limit=36,order='field_name desc')
Run Code Online (Sandbox Code Playgroud)