Odoo - 如何模块化 XML 字段
Odoo - How to Modularize XML Field
我的 XML 文件中有一个嵌套字段,我想将其模块化。例如,我有一个字段为 One2many
的模型。当我在XML中调用One2many
字段时,我需要提供表单和树视图。
<!-- Parent Form -->
<record id="view_rm_reservation_form" model="ir.ui.view">
<field name="name">rm.reservation.form</field>
<field name="model">rm.reservation</field>
<field name="arch" type="xml">
<form>
<sheet>
...
...
<!-- One2many -->
<field name="order_line_ids">
<!-- One2many Tree -->
<tree create="1">
...
...
</tree>
<!-- One2many Form -->
<form create="0">
...
...
</form>
</field>
...
...
</sheet>
</form>
</field>
</record>
我想将 One2many Tree
和 One2many Form
放入单独的文件中。我该怎么做?这可能吗?
是的,这是可能的。只需为该 one2many
字段后面的模型创建一个表单和树视图,然后在该字段的模型上“调用”这些视图。
假设:one2many
字段后面的模型有表单视图 my_module.view_sub_model_form
和树视图 my_module.view_sub_model_tree
。该字段本身就像您的示例 order_line_ids
.
因此您只需执行以下操作即可使用视图:
<field name="order_line_ids"
context="{'tree_view_ref': 'my_module.view_sub_model_tree',
'form_view_ref': 'my_module.view_sub_model_form'}" />
在创建新的“基本视图”(不扩展现有视图)时,请注意视图的优先级字段,因为该字段对于 Odoo 检索视图的顺序很重要。不设置它会导致值 16
,并且在大多数情况下应该没问题。当仅对 one2many 字段使用此类特殊视图时,我会将其至少设置为 17
.
<record id="view_sub_model_form" model="ir.ui.view">
<field name="name">sub.model.form</field>
<field name="model">sub.model</field>
<field name="priority" eval="17" />
<field name="arch" type="xml">
</field>
</record>
我的 XML 文件中有一个嵌套字段,我想将其模块化。例如,我有一个字段为 One2many
的模型。当我在XML中调用One2many
字段时,我需要提供表单和树视图。
<!-- Parent Form -->
<record id="view_rm_reservation_form" model="ir.ui.view">
<field name="name">rm.reservation.form</field>
<field name="model">rm.reservation</field>
<field name="arch" type="xml">
<form>
<sheet>
...
...
<!-- One2many -->
<field name="order_line_ids">
<!-- One2many Tree -->
<tree create="1">
...
...
</tree>
<!-- One2many Form -->
<form create="0">
...
...
</form>
</field>
...
...
</sheet>
</form>
</field>
</record>
我想将 One2many Tree
和 One2many Form
放入单独的文件中。我该怎么做?这可能吗?
是的,这是可能的。只需为该 one2many
字段后面的模型创建一个表单和树视图,然后在该字段的模型上“调用”这些视图。
假设:one2many
字段后面的模型有表单视图 my_module.view_sub_model_form
和树视图 my_module.view_sub_model_tree
。该字段本身就像您的示例 order_line_ids
.
因此您只需执行以下操作即可使用视图:
<field name="order_line_ids"
context="{'tree_view_ref': 'my_module.view_sub_model_tree',
'form_view_ref': 'my_module.view_sub_model_form'}" />
在创建新的“基本视图”(不扩展现有视图)时,请注意视图的优先级字段,因为该字段对于 Odoo 检索视图的顺序很重要。不设置它会导致值 16
,并且在大多数情况下应该没问题。当仅对 one2many 字段使用此类特殊视图时,我会将其至少设置为 17
.
<record id="view_sub_model_form" model="ir.ui.view">
<field name="name">sub.model.form</field>
<field name="model">sub.model</field>
<field name="priority" eval="17" />
<field name="arch" type="xml">
</field>
</record>