1.继承并扩展 _render_template
方法
在你的模块中,创建或修改一个Python文件(例如 models/custom_report.py
),并在其中继承和扩展 ir.actions.report
模型的 _render_template
方法:
from odoo import models
from datetime import datetime
class IrActionsReport(models.Model):
_inherit = 'ir.actions.report'
def _render_template(self, template, values=None):
# 插入打印时间逻辑
docids = values.get('doc_ids')
if docids:
records = self.env[self.model].browse(docids)
for record in records:
if hasattr(record, 'print_date'):
record.print_date = datetime.now()
# 调用父类的方法以执行原有的渲染逻辑
return super(IrActionsReport, self)._render_template(template, values)
3. 添加时间戳字段
在你的模型中,添加一个新的字段 print_date
:
from odoo import models, fields
class DomesticExpense(models.Model):
_name = 'domestic.expense'
# 其他字段定义
print_date = fields.Datetime(string='Print Date')