【问题标题】:Odoo - 如何模块化 XML 字段
【发布时间】:2022-01-23 11:02:29
【问题描述】:

我的 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 TreeOne2many Form 放到一个单独的文件中。我怎么能做到这一点?这甚至可能吗?

【问题讨论】:

    标签: xml odoo odoo-14


    【解决方案1】:

    是的,这是可能的。只需为 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>
    

    【讨论】:

    • 哇,这行得通。但是我删除了modepriority,一切都很好
    • 是的,不是每次都需要优先级。我将删除模式,因为只有当你想创建一个新的基本视图并从现有视图继承时才需要它。
    • 谢谢,你能回答我的其他问题吗,我有很多关于 Odoo 的问题。从现在开始 1 个月后,我可能会提出很多 Odoo 问题
    • 抱歉,我无法回答所有问题 ;-)
    • 好的,没问题,兄弟
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    相关资源
    最近更新 更多