【零散技术】Odoo数据集排序(sorted)

序言:时间是我们最宝贵的财富,珍惜手上的每个时分

最近在写web接口,遇到不少数据排序问题。

例如:将某个数据集按时间排序,按规则排序。

如何快速的通过某个字段进行排序呢, odoo已经帮我们想好了:sorted。

此 sorted 非 python的 sorted/sort函数 切勿混为一谈。

    def sorted(self, key=None, reverse=False):
        """ Return the recordset ``self`` ordered by ``key``.

            :param key: either a function of one argument that returns a
                comparison key for each record, or a field name, or ``None``, in
                which case records are ordered according the default model's order

            :param reverse: if ``True``, return the result in reverse order
        """
        if key is None:
            recs = self.search([('id', 'in', self.ids)])
            return self.browse(reversed(recs._ids)) if reverse else recs
        if isinstance(key, pycompat.string_types):
            key = itemgetter(key)
        return self.browse(item.id for item in sorted(self, key=key, reverse=reverse))

使用方法(例):

对所有的产品 按sequence字段 顺序排列

 products = request.env['product.product'].sudo().search([])
 products = products.sorted('sequence', reverse=False)

承接odoo二次开发.部署实施.

技术交流 商务合作请添加

QQ:543127346 (穆尘)

微信: _ro_cd

访问我们的官网了解更多产品:https://www.ro-cd.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值