跳至内容

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

如何在 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, 苏州远鼎 2026年1月9日
标签
存档