我从另一个类获取这个价格(假设这个例子为500),我想知道如何使用搜索功能从下面的列表中获取ID。
例如我在我的数据库中有这个,我想使用搜索功能来获取我的价格大于MIN_PRICE并低于我的MAX_PRICE的ID。在我的情况下,价格是500我希望它返回ID 2。
SQL示例:WHERE price > MIN_PRICE ANDnd price > MAX_PRICE
ID MIN_PRICE MAX_PRICE
1 0 100
2 101 1000
3 1001 10000
4 10001 100000
我用最低价尝试了以下但没有成功:
self.search(cr, uid, [(self.browse(cr, uid, ids).min_price,'in', price_untaxed)])
答案 0 :(得分:2)
搜索需要搜索域并返回匹配记录的记录集。
域是一个标准列表,每个标准是(field_name,operator,value)的三元组(列表或元组)。
有关域名的更多信息: https://stackoverflow.com/a/14618598/3374651
对于v8:
self.search([('price', '=', MIN_PRICE), ('price', '=', MAX_PRICE)]) # Will return list of matched recordset
对于第7版:
self.pool.get("model_name").search(cr, uid, [('price', '=', MIN_PRICE), ('price', '=', MAX_PRICE)], context=context) # Will return list of matched ids
答案 1 :(得分:0)
您可以使用以下
self.search(cr, uid, [('price','>','MIN_PRICE'),('price','<','MAX_PRICE')],context=context)
答案 2 :(得分:0)
在搜索方法中,您需要通过域(过滤标准)。 搜索方法为您提供了ids []的列表。
self.search(cr, uid, [('price','>','MIN_PRICE'),('price','<','MAX_PRICE')],context=context)
或
self.pool.get('model_name').search(cr, uid, [('price','>','MIN_PRICE'),('price','<','MAX_PRICE')],context=context)