Odoo17向导生成空白PDF报告问题求助
Odoo17 向导PDF报告空白&文件名异常修复方案
问题1:PDF内容空白、无页眉页脚
原因
调用report_action时传入了None,导致报告无法获取到向导记录,模板中docs为空集合,循环t-foreach="docs"未执行,因此页面无内容,依赖web.external_layout的页眉页脚也无法渲染。
修复步骤
修改向导模型的print_report方法,将report_action的第一个参数从None改为self,确保报告能拿到当前向导的记录集:
class ModelWizard (models.TransientModel): _name = 'project.pdf.report' _description='display printed informations' info= fields.Char() def print_report(self): data = { 'model_id': self.id, 'form': self.env.context } # 传入当前向导记录集,而非None return self.env.ref('my_addon.action_report_Pdf').report_action(self, data=data)
问题2:PDF文件名使用name字段值而非print_report_name
原因
print_report_name字段的值存在语法错误:当前配置为'Name,缺少闭合的单引号,Odoo无法解析该表达式,因此 fallback 使用name字段的值作为文件名。
修复步骤
修正print_report_name的语法,确保是有效的Python表达式。可以使用固定文件名,也可以结合记录字段动态生成:
<?xml version="1.0" encoding="utf-8"?> <odoo> <record id="action_report_Pdf" model="ir.actions.report"> <field name="name">My PDF</field> <field name="model">project.pdf.report</field> <field name="report_type">qweb-pdf</field> <field name="report_name">my_addon.my_pdf</field> <field name="report_file">my_addon.my_pdf</field> <!-- 修复单引号,示例为固定文件名,也可使用动态表达式如 'Report_{0}'.format(object.id) --> <field name="print_report_name">'My_Custom_Report'</field> <field name="binding_model_id" eval="False"/> <field name="binding_type">report</field> </record> </odoo>
验证修复
- 重启Odoo服务并升级对应模块
- 打开向导页面,填写
info字段后点击「export PDF」按钮 - 下载的PDF应显示
Sample Report内容及标准页眉页脚,文件名为设置的自定义名称
内容的提问来源于stack exchange,提问作者Arthur Fortin
相关产品推荐
相关产品推荐

