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')