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中工作吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以尝试使用
fields.many2one
的domain
属性,如下所示'product_id': fields.many2one('product.product', 'Product', domain=[ ('purchase_ok','=',True)],change_default=True),
替代方式 ->您可以在 XML 视图中提供域名,如下所示:
you can try the
domain
attribute offields.many2one
as below'product_id': fields.many2one('product.product', 'Product', domain=[('purchase_ok','=',True)], change_default=True),
alternative way -> you can provide domain in your XML View as below,
<field name="product_id" domain="[('purchase_ok','=',True)]"/>
您需要在视图文件中指定要过滤多对一字段的域。例如,如果您想从客户列表中过滤供应商,只需在视图中给出以下内容即可。
You need to specify the domain in the view file which you want the many to one field to be filtered. For e.g. if you want to filter suppliers from the customers list just give the following in the view.
尝试使用 context 或
domain
参数rel="nofollow">开发人员书籍。我没有使用过它们,但您可能可以在核心模块中找到示例。domain
语法的最佳描述位于orm.search()
方法。Try the
context
ordomain
parameters described in the developer book. I haven't used them, but you can probably find examples in the core modules. The best description ofdomain
syntax is on theorm.search()
method.我认为你想根据 hello 字段过滤 Product.product 。因此,在 xml 中的 hello 字段上编写 onchange 方法,并在方法中过滤类型与 hello 字段值匹配的产品 id。
在函数/方法中,您可以将类型与 hello 字段值匹配的所有 id 添加到列表中,然后将此列表返回到product_id。
I think u want to filter product.product according to hello fields right. so write the onchange method on hello filed in xml and in method, filter the product id which type is match to hello filed value.
In function/method u can add all the ids which type is matches to hello filed value, in the list and after return this list to product_id.