在域上进行的搜索向我还原了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)
答案 0 :(得分:1)
另一种解决方案是对search()
上已经存在的结果进行排序:
suplier_inf = self.env['product.supplierinfo'].search(domain, order="qty desc")
参数order
将在Odoo为搜索创建的查询中用作ORDER BY <parameter content>
。默认情况下,Odoo使用模型_order
属性或后备id
(ORDER BY id
)。这就是为什么该参数不是必需但有用的原因!
答案 1 :(得分:0)
我们可以按数量对记录进行排序,如果我们使用reverse=True
,则第一个记录总是数量最大。
sup_inf = suplier_inf.sorted(key=lambda rec: rec.qty, reverse=True)
sup_inf[0]
始终被记录为最高数量