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

如何通过JSON-RPC API获取Odoo项目任务关联的工作表详情?

获取Odoo项目任务关联工作表的用户填写内容(JSON-RPC方式)

用户填写的工作表实际内容存储在worksheet.template.line模型中,每条记录对应工作表里的一个填写项,关联到具体的任务和工作表模板。project.task模型通过worksheet_lines字段与该模型形成一对多关联,这是获取数据的核心入口。

1. JSON-RPC调用示例(execute_kw)

你可以通过调用project.task的execute_kw方法,指定拉取worksheet_lines关联字段,并读取worksheet.template.line中的关键字段来获取原始数据:

步骤1:获取指定任务的工作表填写记录ID

{
    "jsonrpc": "2.0",
    "method": "call",
    "params": {
        "model": "project.task",
        "method": "execute_kw",
        "args": [
            [123],  // 替换为目标任务ID
            "read",
            [["worksheet_lines"]]
        ],
        "id": 1
    }
}

返回结果中worksheet_lines会包含该任务下所有工作表填写记录的ID列表。

步骤2:读取工作表填写记录的实际内容

用上面得到的ID列表,调用worksheet.template.line的read方法,指定需要的字段:

{
    "jsonrpc": "2.0",
    "method": "call",
    "params": {
        "model": "worksheet.template.line",
        "method": "execute_kw",
        "args": [
            [456, 789],  // 替换为步骤1得到的记录ID
            "read",
            [["value", "template_line_id", "task_id"]]
        ],
        "id": 2
    }
}
  • value:用户填写的实际内容(根据字段类型可能是字符串、数字或JSON格式)
  • template_line_id:关联的工作表模板行,可进一步读取该记录的name字段获取填写项的标签名称
  • task_id:关联的任务ID,用于验证数据归属

2. 关于任务仪表盘按钮与Webhook触发

在任务仪表盘添加按钮并触发Webhook的实现思路:

  • 在project.task的视图XML中添加按钮,绑定一个自定义Python方法
  • 该Python方法内部查询当前任务的worksheet_lines数据,组装成你需要的格式
  • 调用自有服务的Webhook接口,将组装好的工作表数据发送过去

补充说明

你之前接触的html_field_history是Odoo前端用于渲染工作表历史记录的字段,仅存储渲染结构,并非原始填写数据的存储位置。原始数据全部在worksheet.template.line的value字段中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:05:04