如何在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中工作?
答案 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中描述的context
或domain
参数。我没有使用它们,但您可以在核心模块中找到示例。 domain
语法的最佳描述位于orm.search()
method。
答案 3 :(得分:0)
我想你想根据hello字段过滤product.product吧。所以在xml和方法中写入hello字段上的onchange方法,过滤类型与hello字段值匹配的产品id。
在函数/方法中,你可以在列表中以及将此列表返回到product_id之后,将所有类型匹配的id添加到hello字段值。