外部标识符(或 XML ID)是可读文本标识符,可在 Odoo 中唯一标识特定记录。
它在导入数据时非常有用,因为:
- 当模块升级时,其数据文件将重新加载到数据库中,我们需要检测现有记录以更新它们,而不是创建重复的新记录。
- 支持互相关联的数据:数据记录必须能够与其他数据记录关联。
实际的数据库 ID 是数据库在模块安装期间自动分配的顺序号。外部 ID 提供了一种引用相关记录的方法,而无需事先知道数据库将分配给它的记录 ID,这使我们能够定义 Odoo 数据文件中的数据关系。
Odoo 负责将外部 ID 名称转换为实际数据库分配给它们的 ID。其背后的机制很简单:
Odoo 管理一个表,其中存储匹配的外部 ID 及其对应的数字数据库 ID:ir.model.data 模型。
要检查现有的映射匹配,请转到设置中的技术部分,然后选择“序列和标识符”下的“外部标识符”。例如,如果我们查看外部 ID 列表,并使用 todo_app 模块对其进行过滤,我们会看到在创建模块之前生成的外部 ID:
外部标识符有一个完整的 ID 标签。请注意,它是使用点(.)连接模块名称及其标识符名称组成的,例如:todo_app.action_todo_task。