我的 XML 文件中有一个嵌套字段,我想将其模块化。例如,我有一个带有字段 One2many
的模型。当我在 XML 中调用 One2many
字段时,我需要提供表单和 TreeView 。
<!-- 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
字段背后的模型创建一个表单和 TreeView ,然后在该字段的模型上“调用”这些 View 即可。
假设:对于 one2many
字段后面的模型,您有一个表单 View my_module.view_sub_model_form
和 TreeView my_module.view_sub_model_tree
。该字段本身就像您的示例 order_line_ids
中的那样。
因此,您只需执行以下操作即可使用 View :
<field name="order_line_ids"
context="{'tree_view_ref': 'my_module.view_sub_model_tree',
'form_view_ref': 'my_module.view_sub_model_form'}" />
创建新的“基本 View ”(不扩展现有 View )时,请注意 View 的优先级字段,因为该字段对于 Odoo 检索 View 的顺序很重要。不设置它会导致值16
,并且在大多数情况下应该没问题。当仅对 one2many 字段使用此类特殊 View 时,我会将其设置为至少高一 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 - Odoo - 如何模块化 XML 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70445361/