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

如何在Odoo中通过create方法将Binary字段值传递至其他字段?

Odoo中create方法传递Binary字段值的解决方案
  • Binary字段要求传入base64编码的字符串,不能直接传递原始文件字节或文件对象,这是导致字段为空的核心原因。

  • 正确的赋值步骤及示例代码:

    1. 读取目标文件的字节内容;
    2. 使用base64模块将字节内容编码为base64字符串;
    3. 在create方法的字段字典中传入该字符串。
import base64

# 读取文件并转base64编码
with open("/path/to/your/report.pdf", "rb") as file:
    report_base64 = base64.b64encode(file.read()).decode("utf-8")

# 创建新记录时传递Binary字段值
self.env["your.model.name"].create({
    "name": "项目报告",
    "project_report": report_base64,  # 对应你的Binary字段名
    # 其他必填字段...
})
  • 常见排查点:
    • 检查文件路径是否正确,确保文件存在且当前用户有读取权限;
    • 确认create字典中的字段名与模型定义的Binary字段名完全一致(注意大小写、拼写);
    • 验证base64编码是否正确:可以尝试将编码后的字符串解码,看是否能还原原始文件内容;
    • 检查当前用户是否拥有该模型的创建权限,以及该Binary字段的写入权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:40:34