防止在 One2many 树视图上创建和删除
Prevent create and delete on a One2many tree view
我将此 One2many
字段显示为树视图,我想有条件地防止创建和删除行,但同时保留现有行的可编辑性,因此 readonly
对我不起作用,因为它隐藏了 add an item
按钮和 trash
图标,但使字段不可编辑。
我在树标签上尝试了attrs="{'create': [('order_type', '!=', 'renewal)]}"
,删除也是如此,但是没有用。
是否可以在不编写一些 JS 代码的情况下实现这种形式 xml?
提前致谢!
我使用 2 个字段来处理这个问题。在您的模型中添加对相同记录的另一个引用:
editable_lines_ids = fields.One2many(
'reference.to.model',
'field_id'
)
no_editable_lines_ids = fields.One2many(
'reference.to.model',
'field_id'
)
然后,在视图中添加两个具有条件可见性的字段:
<field
name="editable_lines_ids"
mode="tree"
attrs="{'invisible': [('order_type', '!=', 'renewal)]}">
<tree
string="Lines"
create="1"
editable="bottom"
delete="1">
<field name="example_field"/>
</tree>
</field>
<field
name="no_editable_lines_ids"
mode="tree"
attrs="{'invisible': [('order_type', '=', 'renewal)]}">
<tree
string="Lines"
create="0"
editable="bottom"
delete="0">
<field name="example_field"/>
</tree>
</field>
我将此 One2many
字段显示为树视图,我想有条件地防止创建和删除行,但同时保留现有行的可编辑性,因此 readonly
对我不起作用,因为它隐藏了 add an item
按钮和 trash
图标,但使字段不可编辑。
我在树标签上尝试了attrs="{'create': [('order_type', '!=', 'renewal)]}"
,删除也是如此,但是没有用。
是否可以在不编写一些 JS 代码的情况下实现这种形式 xml?
提前致谢!
我使用 2 个字段来处理这个问题。在您的模型中添加对相同记录的另一个引用:
editable_lines_ids = fields.One2many(
'reference.to.model',
'field_id'
)
no_editable_lines_ids = fields.One2many(
'reference.to.model',
'field_id'
)
然后,在视图中添加两个具有条件可见性的字段:
<field
name="editable_lines_ids"
mode="tree"
attrs="{'invisible': [('order_type', '!=', 'renewal)]}">
<tree
string="Lines"
create="1"
editable="bottom"
delete="1">
<field name="example_field"/>
</tree>
</field>
<field
name="no_editable_lines_ids"
mode="tree"
attrs="{'invisible': [('order_type', '=', 'renewal)]}">
<tree
string="Lines"
create="0"
editable="bottom"
delete="0">
<field name="example_field"/>
</tree>
</field>