### 数据文件
Odoo是一个高度数据驱动系统. 虽然行为是定制的使用 [Python](http://python.org/) 模块的值的代码部分是在加载时设置的数据。
Tip
一些模块的存在只为数据添加到Odoo
模块数据通过 [数据文件](https://www.odoo.com/documentation/9.0/reference/data.html#reference-data), 带有 `<record>` 元素的文件。每一个 `<record>` 元素创建或更新数据库记录。
~~~ xml
<openerp>
<data>
<record model="{model name}" id="{record identifier}">
<field name="{a field name}">{a value}</field>
</record>
</data>
<openerp>
~~~
* `model` 是为记录Odoo模型名称
* `id` 是一个 [外部标识符](https://www.odoo.com/documentation/9.0/glossary.html#term-external-identifier), 它允许引用记录(不需要知道它的数据库标识符)
* `<field>` 元素有一个名字,这是模型中的字段的名称(例如,描述)。他们的身体是该领域的价值。
数据文件被宣布在清单文件被加载,他们可以宣布在 `'data' `列表(满载)或在 `'demo'` 列表(只加载在演示模式)。
练习
定义示范数据
创建演示数据填充的 *Courses* 模型与一些示范课程。
编辑文件 `openacademy/demo.xml` 包括一些数据。
*openacademy/demo.xml*
~~~ xml
<openerp>
<data>
<record model="openacademy.course" id="course0">
<field name="name">Course 0</field>
<field name="description">Course 0's description
Can have multiple lines
</field>
</record>
<record model="openacademy.course" id="course1">
<field name="name">Course 1</field>
<!-- no description for this one -->
</record>
<record model="openacademy.course" id="course2">
<field name="name">Course 2</field>
<field name="description">Course 2's description</field>
</record>
</data>
</openerp>
~~~