Odoo PDF发票生成对应XML文件名查询及模板修改无效排查
Odoo PDF发票模板文件确认及代码生效问题排查
一、PDF发票对应的XML模板文件
你继承的account.report_invoice_document是Odoo官方account模块中的默认发票报表模板,其定义文件为:addons/account/views/report_invoice.xml
如何确认该文件:
- 开发者模式验证:启用开发者模式后,进入「设置」>「技术」>「视图」>「QWeb视图」,搜索
report_invoice_document,在视图详情中可查看其所属模块和对应的XML文件路径。 - 源码直接查看:打开Odoo源码的
account模块目录,进入views文件夹,找到包含report_invoice_document模板ID的XML文件(通常就是report_invoice.xml)。
二、你的代码未生效的可能原因及修复建议
1. 模块未正确安装/更新
确保你的自定义模块已在Odoo中安装,并且在修改XML代码后,进入「应用」列表找到该模块,点击「升级」按钮,使修改生效。
2. XPath表达式匹配不准确
原模板的结构可能与你的XPath预期不符,建议调整为更精确的定位:
<odoo> <template id="report_invoice_inherit" inherit_id="account.report_invoice_document"> <!-- 添加成员数列表头 --> <xpath expr="//table[@name='invoice_line_table']/thead/tr" position="inside"> <th name="th_members" class="text-end"><span>Number of Members</span></th> </xpath> <!-- 添加成员数列内容 --> <xpath expr="//table[@name='invoice_line_table']/tbody/tr/td[@name='td_quantity']" position="after"> <td name="td_members" class="text-end"> <span t-field="line.num_members"/> </td> </xpath> <!-- 隐藏税费列 --> <xpath expr="//table[@name='invoice_line_table']/thead/tr/th[@name='th_taxes']" position="attributes"> <attribute name="class">d-none</attribute> </xpath> <xpath expr="//table[@name='invoice_line_table']/tbody/tr/td[@name='td_taxes']" position="attributes"> <attribute name="class">d-none</attribute> </xpath> </template> </odoo>
(注:将//thead//tr改为/thead/tr,避免匹配到嵌套的tr元素)
3. 缓存问题
- 清理浏览器缓存,强制刷新页面。
- 在开发者模式下,进入「设置」>「技术」>「报表」>「报表」,找到「客户发票」报表,点击「清除缓存」按钮。
4. 字段存在性验证
确保account.move.line模型中已正确添加num_members字段,并且该字段有对应的数据值。
5. 模块依赖问题
检查你的自定义模块的__manifest__.py文件,确保已添加对account模块的依赖:
'depends': ['account'],
内容的提问来源于stack exchange,提问作者Aws Dayoub
相关产品推荐
相关产品推荐

