从域名搜索中选择数量最高的记录

时间:2018-08-24 09:32:25

标签: odoo odoo-8 odoo-9

在域上进行的搜索向我还原了2条记录。我想过滤具有更高数量的记录。所以我可以在域('qty','<=',line.quantity),('qty','>',line.quantity)中做类似的事情吗? 只需要suplier_inf就能给我1个最高数量的记录。

  for line in invocie.invoice_line_ids:
                domain = [('product_tmpl_id', '=', line.product_id.product_tmpl_id.id),
                          ('name', '=', line.partner_id.id)]
                suplier_inf = self.env['product.supplierinfo'].search(domain)

2 个答案:

答案 0 :(得分:1)

另一种解决方案是对search()上已经存在的结果进行排序:

suplier_inf = self.env['product.supplierinfo'].search(domain, order="qty desc")

参数order将在Odoo为搜索创建的查询中用作ORDER BY <parameter content>。默认情况下,Odoo使用模型_order属性或后备idORDER BY id)。这就是为什么该参数不是必需但有用的原因!

答案 1 :(得分:0)

我们可以按数量对记录进行排序,如果我们使用reverse=True,则第一个记录总是数量最大。

sup_inf = suplier_inf.sorted(key=lambda rec: rec.qty, reverse=True)

sup_inf[0]始终被记录为最高数量