【问题标题】:Domain filter in XML odoo 10XML odoo 10 中的域过滤器
【发布时间】:2018-05-23 05:05:41
【问题描述】:

我添加了一个类操作单元。在 product.template 中,我已将其添加为 Many2one 归档为 operating_unit_id。在 res.users 中,我将此类称为 many2many 字段操作单元 ID。我需要过滤产品字段,以便只有当前用户标记的操作单元的产品应该显示在下拉列表中。我使用的域如下。它过滤掉了一切。

<field name="product_id"
domain="[('operating_unit_id','in', 'user_id.operating_unit_ids.ids')]"/>

但是,如果我像下面那样静态传递 id,它就可以正常工作。

<field name="product_id" domain="[('operating_unit_id','in', (3,4))]"/>

你能告诉我我做错了什么吗?

【问题讨论】:

  • 您想使用 many2many 字段作为过滤器的域??
  • @ManishBohra 是的,你是对的!这可能吗?
  • 这里要保证user_id下的ids正确
  • 是的,我签入了 python(使用 self)... user_id.operating_unit_ids 中的当前 ID 为 (1,2,3,4,5,6)。我还发现它直接检查文本(确切的文本)而不是值。有什么想法吗??

标签: xml odoo odoo-10


【解决方案1】:

前几天我也遇到了这个问题,没有找到合适的解决方案。所以,我建议你在 python 文件而不是 xml 文件中应用这个域。

domain="[('id', 'in', operating_unit_id and operating_unit_id[0] and "operating_unit_id[0][2] or False)]"

【讨论】:

  • 谢谢。 domain="[('id', 'in', operating_unit_ids[0][2])]" 这一个过滤得很好。但它仅在我更改已保存的潜在客户中的产品时才有效。当我创建新的潜在客户并尝试下拉产品时,它会出现以下错误。 raise ValueError("Invalid domain term %r" % (leaf,)) ValueError: Invalid domain term (u'id', u'in', {u'code': u'EC', u'company_id': 1, u'name': u'Etisalat consumer'}) 现在... many2many 的输出格式发生了变化???
【解决方案2】:

你可以尝试这个并在你可以应用域之后计算你的 many2many 字段。

<field name="product_id" domain="[('id','in',TEST and TEST[0][2])]"/>

测试您的 many2many 字段名称。 我希望它对你有用。

【讨论】:

    【解决方案3】:

    为了完整起见:在此链接中,您将找到有关先前答案的更详细说明

    https://www.odoo.com/forum/help-1/question/complex-many2many-domains-in-views-41777

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多