xml - Odoo - 如何模块化 XML 字段

标签 xml odoo odoo-14

我的 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 TreeOne2many 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/

相关文章:

odoo - 如何将 TreeView 的 group_by 中的总和标题更改为最小值?

java - getElementsByTagName 向下搜索所有级别的 XML 节点

odoo - 如何在OpenERP中将库存清零?

python - odoo 10.0 中的日期添加

python - 在其类定义之后立即实例化 python 对象

Odoo 防止在 One2many 字段中选择重复记录

r - 如何使用表格列表

python - 根据 XML 架构 (xsd) 验证具有大文本元素的 XML

c# - XmlDocument.Load(String filename) 和 XmlDocument.Load(FileStream fs) 之间的区别