搜索数据库中的记录

Search through records in database

我从另一个 class 那里获取了这个价格(在这个例子中假设为 500),我想知道如何使用搜索功能从下面的列表中取回 ID。

例如,我的数据库中有这个,我想使用搜索功能获取我的价格高于 MIN_PRICE 且低于我的 MAX_PRICE 的 ID。在我的情况下,价格是 500,我希望它是 return 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)])

您可以使用以下

self.search(cr, uid, [('price','>','MIN_PRICE'),('price','<','MAX_PRICE')],context=context)

在搜索方法中,您需要传递域(过滤条件)。 搜索方法返回 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)

搜索采用搜索域和 returns 匹配记录的记录集。

域是一个标准列表,每个标准都是(field_name、运算符、值)的三元组(列表或元组)。

有关域名的更多信息:

对于 v8:

self.search([('price', '=', MIN_PRICE), ('price', '=', MAX_PRICE)]) # Will return list of matched recordset

对于 v7:

self.pool.get("model_name").search(cr, uid, [('price', '=', MIN_PRICE), ('price', '=', MAX_PRICE)], context=context) # Will return list of matched ids