如何制作隐形 Field Odoo 14

Posted

技术标签:

【中文标题】如何制作隐形 Field Odoo 14【英文标题】:How to make invisible Field Odoo 14 【发布时间】:2021-05-24 22:09:39 【问题描述】:

在注册支付向导中,我添加了 2 个字段。我想根据'move_type'使字段不可见

如果 move_type == 'in_invoice' --> field1 : 不可见

如果 move_type == 'out_invoice' --> field2 : 不可见

<record id="view_account_payment_register_form_inherit_payment_test" model="ir.ui.view">
  <field name="name">account.payment.register.form.inherit.payment.test</field>
  <field name="model">account.payment.register</field>
  <field name="inherit_id" ref="account.view_account_payment_register_form"/>
  <field name="arch" type="xml">
      <xpath expr="//group/field[@name='communication']" position="after">
          <field name="field1"/>
          <field name="field2"/>
       </xpath>
 </field>
</record>

我该怎么做? 谢谢。

【问题讨论】:

【参考方案1】:

你应该使用attrs属性。

<field name="move_type" invisible="1" /> <!-- you need this for attrs domain work -->
<field name="field1" attrs='"invisible":[("move_type","=","in_invoice")]' />
<field name="field2" attrs='"invisible":[("move_type","=","out_invoice")]' />

您需要在数据模型中包含move_type 才能使其正常工作。如果没有,请将其添加为相对字段。你可以在你的向导代码中这样做

    move_type = fields.String(related="account_move.move_type")

【讨论】:

我没有 move_type ,如何将它作为相对它添加到 'account.payment.register' 模型中? 您想使用哪种模型的 move_type 以及该模型与您的 account.payment.register 的关系如何?确切地说,move_type 必须在视图中才能将其用作 attrs 的条件。但是要将该字段放入视图中,您需要将其放入数据模型中。 move_type 来自标准 Odoo:创建供应商账单或客户发票时,点击注册付款时会有一个向导。这里我添加了 2 个字段。我想根据 move_type(in_invoice/out_invoice) 在wiard中显示/隐藏字段,这意味着如果它是Vendre Bill:在向导中如果注册付款仅显示field2,并且对于仅显示field1的客户发票。【参考方案2】:

您可以使用payment_type,付款类型将是Send Money 用于供应商账单,Receive Money 用于客户发票。

示例:

<!-- move_type == in_invoice (Vendor Bill) -> payment_type == outbound (Send Money) -->
<field name="field1" attrs="'invisible': [('payment_type', '=', 'outbound')]"/>

<!-- move_type == out_invoice (Customer Invoice) -> payment_type == inbound (Receive Money) -->
<field name="field2"  attrs="'invisible': [('payment_type', '=', 'inbound')]"/>

【讨论】:

以上是关于如何制作隐形 Field Odoo 14的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 5 中制作隐形按钮?

odoo 14 如何获取选定的记录

如何在 Odoo 14 中隐藏过滤器

如何在 ODOO-14 中激活开发者模式.....?

如何在odoo 14的打印菜单中隐藏报告?

如何在 odoo 14 中更改 OrderReceipt