0

如何过滤 openerp 中的 many2one 字段。

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

如果假设 product.product 具有名为 type 的字段,该字段也是 selection 并且其值与 hello 相同,它在 xml 或 python 中是否有效?

4

4 回答 4

8

你可以试试下面的domain属性fields.many2one

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

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

<field name="product_id" domain="[('purchase_ok','=',True)]"/>

于 2011-03-02T10:58:09.117 回答
1

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

:domain="[('supplier','=',True)]"
于 2012-04-19T04:38:52.747 回答
0

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

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

于 2012-07-28T11:45:20.377 回答
0

尝试开发者手册context中描述的或domain参数。我没有使用它们,但您可能可以在核心模块中找到示例。对语法的最佳描述是在方法上。domainorm.search()

于 2011-03-01T19:46:20.210 回答