You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求问Odoo v17/v16核心模型的公开数据模型文档资源

获取Odoo核心模型数据模型与ER图的实用方案

一、从Odoo实例直接提取

  • 查看模型与字段元数据:启用开发者模式后,进入「设置 > 技术 > 数据库结构 > 模型」,这里能查看所有核心模型的字段详情——默认id是主键(PK),类型为many2one/one2many/many2many的字段对应外键(FK),还可导出这些数据整理成数据字典。
  • 生成ER可视化图:安装graphviz依赖后,执行命令 odoo-bin scaffold --models=all --output=er_diagram,Odoo会自动生成包含所有模型关联关系的ER图文件。

二、构建自定义数据字典

可以通过简单的Python脚本遍历Odoo元数据模型,导出结构化的字段信息:

from odoo import models

def generate_data_dictionary(env):
    models = env['ir.model'].search([])
    for model in models:
        print(f"### 模型:{model.name} ({model.model})")
        fields = env['ir.model.fields'].search([('model_id', '=', model.id)])
        for field in fields:
            pk_tag = "*PK*" if field.name == 'id' else ""
            fk_tag = f"*FK关联:{field.relation}*" if field.ttype in ('many2one', 'one2many', 'many2many') else ""
            print(f"- 字段名:{field.name} | 类型:{field.ttype} | {pk_tag} {fk_tag}")

调用时只需传入Odoo环境对象,即可输出Markdown格式的数据字典。

三、社区工具与数据库查询

  • 社区模块辅助:安装base_report_erpdiagram模块,启用后在后台就能直接生成并下载ER图,该模块会自动梳理模型间的关联逻辑。
  • 数据库直接查询:连接Odoo的PostgreSQL数据库,执行以下SQL语句导出元数据:
SELECT 
    m.name AS model_display_name,
    m.model AS model_technical_name,
    f.name AS field_name,
    f.ttype AS field_type,
    CASE WHEN f.name = 'id' THEN 'PK' ELSE '' END AS primary_key,
    CASE WHEN f.ttype IN ('many2one','one2many','many2many') THEN f.relation ELSE '' END AS foreign_key_relation
FROM ir_model m
INNER JOIN ir_model_fields f ON m.id = f.model_id
ORDER BY m.model;

将查询结果导出为CSV或Excel,即可快速得到包含PK/FK的完整数据字典。

内容的提问来源于stack exchange,提问作者Alec Guerenstein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:12:35