【问题标题】:Filter in openerp [closed]在 openerp 中过滤 [关闭]
【发布时间】:2011-03-01 05:30:15
【问题描述】:

如何在 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 中是否有效??

【问题讨论】:

  • 您的问题可以使用更多细节。告诉我们你到底想要做什么。示例数据确实有助于澄清问题。
  • @shahjapan ''hello:fields.selection([('1','one'),('2','two')],'hello'), 'product_id': 字段.many2one('product.product', 'Product', domain=[('type','=',hello)])' 如果假设 product.product 具有名为 type 的字段,该字段也是 selection 并且其值与 hello 相同它在 xml 或 python 中工作??
  • 你应该编辑你的问题而不是用评论来回答

标签: openerp


【解决方案1】:

你可以试试fields.many2onedomain属性如下

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

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

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

【讨论】:

  • ''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中??
  • 我认为您想根据另一个字段 hello 更改 product_id (M2O) 的域,如果是这样,您需要在 xml 和 python 中的字段 hello 上编写 on_change 属性编写各自的函数onchange_hello应该为字段product_id返回适当的domain,详细示例参见现有模块购买->方法product_id_change
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • Domain filter条件超过2个的时候怎么写?
      • 是的,它适用于一个或多个条件,因为我们生成满足我们想要的所有条件的 id 列表,并且该列表将返回...
      猜你喜欢
      • 1970-01-01
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 2017-01-03
      相关资源
      最近更新 更多