在openerp中过滤

时间:2011-03-01 05:30:15

标签: openerp

如何在openerp中过滤many2one字段。

_columns = {
   'hello': fields.selection([('1','one'),('2','two')],'hello'),
   'product_id': fields.many2one('product.product',
                                 'Product',
                                 domain=[('type','=',hello)])'
   ...
}

如果假设product.product有一个名为type的字段,它也是选择,它的值与hello相同,它是否在xml或python中工作?

4 个答案:

答案 0 :(得分:8)

您可以尝试domain的{​​{1}}属性,如下所示

fields.many2one

替代方式 - >您可以在XML视图中提供域,如下所示

'product_id': fields.many2one('product.product', 'Product', domain=[('purchase_ok','=',True)], change_default=True),

答案 1 :(得分:1)

您需要在视图文件中指定要过滤多对一字段的域。对于例如如果您想从客户列表中过滤供应商,只需在视图中提供以下内容即可。

:domain="[('supplier','=',True)]"

答案 2 :(得分:0)

尝试developer book中描述的contextdomain参数。我没有使用它们,但您可以在核心模块中找到示例。 domain语法的最佳描述位于orm.search() method

答案 3 :(得分:0)

我想你想根据hello字段过滤product.product吧。所以在xml和方法中写入hello字段上的onchange方法,过滤类型与hello字段值匹配的产品id。

在函数/方法中,你可以在列表中以及将此列表返回到product_id之后,将所有类型匹配的id添加到hello字段值。