让我们假设以下代码:
<field name="object_ids" attrs="{'readonly': [('state', 'not in', ['A', 'B'])]}">
<form string="My object" version="7.0">
<field name="object_name"/>
<field name="object_description"/>
</form>
</field>
这是一个示例,仅用于说明一个one2many字段的表单视图的定义。
是否有方法可以覆盖在readonly
子字段(object_ids
)中设置的object_name
属性?
在这种情况下,我的整个表单视图对于指定的状态将是只读的,但是我想绕过/覆盖特定字段的此属性。例如:
...
<field name="object_name" attrs="{'readonly': False}"> <!-- overrides the readonly set -->
...
有没有办法做到这一点?还是我必须从one2many
字段中删除属性并将其添加到每个字段中?这样做的目的是避免在每个字段中重复使用此属性(这很耗时,由于继承视图而容易出错)。
答案 0 :(得分:0)
是的,这应该是可能的。
对于您的简单示例,您甚至不需要XPath
语法:
<field name="object_ids" position="attributes">
<attribute name="attrs">{'readonly': 0}</attribute>
</field>
这会将readonly设置为false。但是,如果您想删除attrs
属性,因为不再需要它,就可以:
<field name="object_ids" position="attributes">
<attribute name="attrs" />
</field>
第一个使用XPath
的示例(也可以使用第二个示例):
<xpath expr="//field[@name='object_ids'" position="attributes">
<attribute name="attrs">{'readonly': 0}</attribute>
</field>
答案 1 :(得分:0)
根据下面@EasyOdoo的评论,如果不重新定义one2many
字段的属性,这似乎是不可能的。