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

Odoo 15发票打印添加信息失败求助(附代码)

Odoo发票打印新增信息不显示的原因及解决办法

核心问题分析及修复步骤

1. 模板继承语法错误(最可能原因)

你的XML模板存在两个关键问题:

  • inherit_id前缀缺失:Odoo的模板id需要完整的模块前缀,正确的发票打印模板id应该是account.report_invoice_document(Odoo13+)或account.report_invoice(Odoo12及更早),你写的report_invoice_document缺少account.前缀,导致无法找到原模板进行继承。
  • 未使用正确的继承定位语法:直接在<template>内写新的<div>不会自动插入到原模板中,必须用xpath定位到原模板的目标位置,再通过position属性指定插入方式(如inside、after等)。

修复后的XML代码示例:

<odoo>
    <data>
        <!-- 适配Odoo13+,Odoo12及更早替换inherit_id为"account.report_invoice" -->
        <template inherit_id="account.report_invoice_document">
            <!-- 定位到原模板中的informations容器,在内部添加新内容 -->
            <xpath expr="//div[@id='informations']" position="inside">
                <div class="col-auto col-3 mw-100 mb-2" t-if="o.invoice_date" name="invoice_date">
                    <strong>Invoice Date:</strong>
                    <p class="m-0" t-field="o.invoice_date"/>
                </div>
            </xpath>
        </template>
    </data>
</odoo>

2. 报表模型继承无实际意义

你继承的account.invoice.report是统计报表模型,并非发票打印时直接使用的业务模型(Odoo13+是account.move,更早版本是account.invoice)。如果只是要显示发票本身已有的字段(如invoice_date),完全不需要继承这个模型,直接删除该Python文件即可。

3. 模块未正确升级加载

修改代码后必须执行以下操作:

  • 进入Odoo应用列表,找到你的自定义模块,点击升级按钮
  • 开启开发者模式,点击右上角的刷新图标,选择清除缓存并刷新界面
  • 清除浏览器本地缓存,避免加载旧的模板内容

4. Odoo版本适配问题

确认你使用的Odoo版本,对应正确的模型和模板:

  • Odoo12及更早:发票模型为account.invoice,打印模板id为account.report_invoice
  • Odoo13+:发票模型改为account.move,打印模板id为account.report_invoice_document

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:40:53