Skip to Content

odoo 19 加载演示数据的两种方法

January 9, 2026 by
odoo 19 加载演示数据的两种方法
中国 Odoo, 苏州远鼎

如何在 Odoo 19 中加载演示数据

随着 Odoo 的不断发展,最新版本 Odoo 19 引入了新功能,使 ERP 实施过程更顺畅、功能更强大。对于开发自定义模块的开发者和集成商而言,加载演示数据是关键步骤 —— 它能为模块功能提供真实的测试环境、培训场景和展示效果。演示数据可在填充真实数据前让应用呈现 “真实运行” 的状态,这在开发过程和客户演示中极具价值。

本文将介绍在 Odoo 19 中加载演示数据的两种常用方法:通过 XML 文件和 CSV 文件。我们将逐步讲解如何创建这两种类型的演示数据、将其与模块关联,以及在 Odoo 19 中验证实施效果。

为什么需要使用演示数据?

演示数据在 ERP 开发中扮演重要角色,主要体现在:

  • 测试记录:在部署前验证模块功能是否正常;
  • 培训资源:帮助终端用户通过示例数据理解模块用法;
  • 功能展示:在演示或客户汇报中直观呈现模块特性。

方法一:通过 XML 文件加载演示数据

XML 文件适合定义结构化的演示数据,尤其适用于复杂记录。以下是具体步骤:

步骤 1:创建 demo 文件夹

在模块目录中,创建一个名为demo的文件夹,用于存储所有包含演示数据的 XML 文件。

步骤 2:创建含演示数据的 XML 文件

在demo文件夹中创建 XML 文件,示例命名为students.xml。以下代码定义了student.info模型(人力资源部门模型)的一条示例记录:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
        <!-- 1. 创建演示部门(若系统无默认部门,用于关联 student.info 的 department_id) -->
        <record id="demo_department_it" model="hr.department">
            <field name="name">信息技术部</field>  <!-- 部门名称 -->
            <field name="color" eval="1"/>         <!-- 颜色标识(1=蓝色,视觉区分) -->
        </record>

        <!-- 2. 定义“上级学生”(父记录):用于演示自关联的 parent_id -->
        <record id="demo_student_parent" model="student.info">
            <field name="name">张三</field>                <!-- 姓名(必填字段) -->
            <field name="age" eval="22.0"/>              <!-- 年龄(Float 类型,保留小数) -->
            <field name="date_of_birth">2002-05-15</field> <!-- 出生日期(Date 类型,格式 YYYY-MM-DD) -->
            <!-- 关联部门:引用上方创建的“信息技术部”,若用系统默认部门可改为 ref="hr.department_management" -->
            <field name="department_id" ref="demo_department_it"/>
            <!-- parent_id 留空:此学生为“顶层上级”,无上级学生 -->
            <field name="parent_id" eval="False"/>
        </record>

        <!-- 3. 定义“下级学生 1”(子记录):parent_id 关联上方的“张三” -->
        <record id="demo_student_child1" model="student.info">
            <field name="name">李四</field>
            <field name="age" eval="20.0"/>
            <field name="date_of_birth">2004-03-20</field>
            <field name="department_id" ref="demo_department_it"/> <!-- 同属信息技术部 -->
            <field name="parent_id" ref="demo_student_parent"/>     <!-- 上级学生:引用“张三”的 ID -->
        </record>

        <!-- 4. 定义“下级学生 2”(子记录):parent_id 同样关联“张三” -->
        <record id="demo_student_child2" model="student.info">
            <field name="name">王五</field>
            <field name="age" eval="19.5"/>
            <field name="date_of_birth">2005-09-01</field>
            <field name="department_id" ref="demo_department_it"/> <!-- 同属信息技术部 -->
            <field name="parent_id" ref="demo_student_parent"/>     <!-- 上级学生:引用“张三”的 ID -->
        </record>
    </data>
</odoo>

代码说明:

  • record_id:记录的唯一标识符(自定义,需确保模块内唯一);
  • model:指定关联的 Odoo 模型(此处为student.info,即学生信息模型);
  • field:定义模型字段值,如name(部门名称)、age(年龄标识,eval="19.5" 表示为19.5岁);
  • noupdate="1":设置该数据仅在模块初始安装时加载,后续模块更新时不会被覆盖或修改。

步骤 3:在 manifest 文件中关联 XML 文件

要让 Odoo 加载该 XML 文件,需在模块的__manifest__.py文件中,将其路径添加到demo关键字下:

验证结果

安装模块后,进入 Odoo 后台的 “学生管理” 菜单,即可看到新增的演示学生 “张三,李四,王五”,表明演示数据加载成功。

方法二:通过 CSV 文件加载演示数据

对于大量简单数据,CSV 文件是更实用的选择。它能以简洁格式快速生成多条记录,尤其适合同一模型需要大量条目的场景。

步骤 1:创建 CSV 文件

在模块的data文件夹中创建 CSV 文件(示例命名为student_demo.csv),文件需包含id,name,age,date_of_birth,department_id,parent_id等字段列。

以下是 CSV 文件示例内容:

id,name,age,date_of_birth,department_id,parent_id
student_zhang3,张三,21.0,2003-09-10,students_demo.demo_department_it,
student_li4,李四,20.0,2004-03-25,students_demo.demo_department_it,students_demo.student_zhang3
student_wang5,王五,19.5,2005-06-18,students_demo.demo_department_it,students_demo.student_zhang3

字段说明:

  • id:每条记录的唯一标识符,需以模块名或命名空间为前缀;
  • name:学生名称;
  • age:年龄;
  • date_of_birth:生日;
  • department_id:部门;
  • parent_id:上级学生;

步骤 2:关联 CSV 文件到 manifest

将 CSV 文件路径添加到__manifest__.py的data关键字下(CSV 文件通常放在data文件夹,与 XML 演示数据的demo关键字区分):

{
    # ... 其他元数据 ...
    "data": [
        "data/student_demo.csv",  # 关联CSV演示数据文件
    ],
    # ... 其他配置 ...
}

验证结果

安装模块后,在对应模型的列表视图中可查看加载的演示数据。

总结

在 Odoo 19 中,通过 XML 和 CSV 文件加载演示数据是测试、展示和培训自定义模块的有效方式。遵循上述步骤,你可以为 Odoo 数据库填充相关示例数据,提升 ERP 用户体验。无论选择 XML(适合结构化数据)还是 CSV(适合简单、大量条目),演示数据都能帮助你更直观地展现模块的功能价值。

odoo 19 加载演示数据的两种方法
中国 Odoo, 苏州远鼎 January 9, 2026
Tags
Archive