我在One2many
树视图中显示了一些字段:
<page string="Budget Lines Planned">
<field name="account_budget_bsi_line" colspan="4" nolabel="1" attrs="{'readonly':[('state','!=','draft')]}">
<tree string="Budget Lines Planned" editable="bottom" >
<field name="opening_stock"/>
<field name="sales_planned" />
<field name="amount_total"/>
<field name="interauxiliary_transfers_planned" />
<field name="interauxiliary_receipts_planned" />
<field name="prod_purchased_planned" />
<field name="closing_stock_planned" />
</tree>
</field>
</page>
这来自自定义模块,该模块具有状态工作流,即:draft, approved, next, done
等。
假设在next
州,我想要隐藏opening_stock
字段,并显示其他字段。
我知道这可以通过使用attrs="{'readonly':[('state','!=','draft')]}"
或隐形或其他方式在表单上实现。
但似乎并不适用于One2many
树视图,因此,在这种情况下如何实现这一目标?
答案 0 :(得分:1)
我相当确定无法动态隐藏One2many
字段树的整个列。您可以使用attrs
动态隐藏每行的列内容。在下面的情况中,如果该行的名称为&#34;示例&#34;,那么当它处于草稿状态时它将显示为空白单元格。
<field name="opening_stock" attrs="{'invisible': [('state', '!=', 'draft')]}"/>
如果您确实必须显示不同的One2many
树视图,那么您可以尝试在视图中使用多个字段/树定义,并使用attrs
字段本身上的One2many
:
<field name="account_budget_bsi_line" attrs="{'invisible': [('state', '=', 'draft')]}">
<tree>
...
<field name="opening_stock"/>
...
</tree>
</field>
<field name="account_budget_bsi_line" attrs="{'invisible': [('state', '!=', 'draft')]}">
<tree>
...
<!-- Exclude field opening_stock -->
...
</tree>
</field>
我不确定这是否适合您的需求,但它是我能想到的最接近解决方案。