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
相关产品推荐
相关产品推荐

