如何在openerp xml视图中检查one2many字段是否为空

时间:2015-06-24 14:51:08

标签: xml openerp odoo openerp-7 erp

如果另一个字段(one2many)没有值(为空),我试图使某个字段不可见。

我正在尝试像

这样的东西
<field name="reference" invisible="{'line_ids', '=', False}"/>

也试过

<field name="reference" invisible="{'line_ids', 'in', []}"/>

最后

<field name="reference" invisible="{'line_ids', '=', None}"/>

注意:line_ids是one2many字段

但没有奏效。有人请建议一些可行的方法。

6 个答案:

答案 0 :(得分:10)

尝试以下,

<field name="reference" attrs="{'invisible' :[('line_ids', '=', False)]}"/>

这是在odoo中的attrs行为,版本与版本不同。

enter image description here

答案 1 :(得分:4)

对于Odoo 10中的One2many字段,我刚刚测试了自己并且空列表有效,如:

attrs="{'invisible': [('item_ids', '=', [])]}"

我从其他人那里听说上面的内容也适用于Odoo 9。对于Odoo 8,我也使用过:

attrs="{'invisible': [('item_ids', '=', [(6, False, [])])]}"

......成功。如果其中任何一个不适合您和您的相应版本,请尝试更新您的来源。此外,对于Odoo 7,空列表方式应该有效(但我自己还没试过)。他们如何从[]到[(6,False,[])])]然后再回到[],这有点奇怪。

答案 2 :(得分:2)

我有同样的问题。我尝试过Emipro的解决方案,但是没有用(但你仍然必须使用&#34; attrs&#34;而不是隐形)。

另外,我尝试了

[('line_ids', '=', [(0, 0, [])])]

[('line_ids', '=', [(6, False, [])])]

但没有任何效果。

最后,我最终创建了一个布尔计算字段

self.line_count = len(self.line_ids) > 0

它适用于更简单的条件

[('line_count', '=', False)]

如果有人建议正确的解决方案......

答案 3 :(得分:0)

这对我有用:

<field name="reference" attrs="{'invisible' :[('line_ids', '!=', [])]}"/>

答案 4 :(得分:0)

试试这个方法。这个对我有用

<field name="reference" attrs="{'invisible': [('line_ids', '=', [(6, False, [])])]}" />

答案 5 :(得分:0)

[('line_ids','=',[[6,False,[]]])]

它在openerp7中对我有用