如何有效隐藏Odoo 13 CE中的字段?

问题描述

我正在使用Odoo 13 CE,并且正在继承视图l10n_latam_base.view_partner_latam_form表单模型res.partner,因此无法隐藏字段city(请注意{{1} }属于视图city,它是我继承自该视图的父视图。我已经尝试过以下方法而没有运气:

base.view_partner_form
<field name="city" invisible="1"/>
<field name="city" position="attributes">
    <attribute name="attrs">{'invisible': True}</attribute>
</field>
<field name="city" position="attributes">
    <attribute name="invisible">1</attribute>
</field>

我尝试使用选择器<xpath expr="//field[@name='city']" position="attributes"> <!-- with this --> <attribute name="invisible">1</attribute> <!-- and this --> <attribute name="attrs">{'invisible': True}</attribute> </xpath> //field[@name='city'][2],但遇到一个错误,抱怨在父视图中找不到该元素,这告诉我,{{1我猜是在父视图上。另一件事是,我使用该字段作为参考来添加我自己的某些字段并且正在工作,即,这些字段显示在xpath之后,例如:

city

如果我在字段city上方的代码段中使用了<field name="city" position="after"> <!-- ... --> </field> (但我不建议这样做),我不知道为什么该字段如此特殊以至于不会隐藏,position="replace"city之类的其他字段将正确隐藏。

在此方面提供的任何帮助将不胜感激。预先感谢!

解决方法

如果要根据条件隐藏字段,则应使用attrs,但是如果没有条件,则只需添加如下属性:

<field name="city" position="attributes">
    <attribute name="invisible">1</attribute>
</field>

注意:position =“ replace”是至关重要的事情,因为您从表单中删除了该字段,并且在此字段之前或之后可能还有其他字段,请注意。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...