我可以将上下文传递给另一类models.Model但是在models.AbstractModel中它返回none。
这是我的代码。
class PrintWizard(models.TransientModel):
_name = 'print.report.wizard'
start_date = fields.Date()
end_date = fields.Date()
@api.multi
def print_report(self):
ctx = self.env.context.copy()
ctx.update({'start': self.start_date, 'end': self.end_date})
return self.env['report'].with_context(ctx).get_action('erp.report_id')
class ReportClass(models.AbstractModel):
_name = 'report.erp.report_id'
@api.multi
def render_html(self, data):
report_obj = self.env['report']
report = report_obj._get_report_from_name('erp.report_id')
start = self.env.context.get('start')
end = self.env.context.get('end')
docs = self.env['erp.account'].search([('start_date','>=',start),('end_date', '<=', end)])
docargs = {
'doc_model': report.model,
'docs': docs
}
return report_obj.render('erp.report_id', docargs)
我试图打印开始和结束,它返回没有我认为我以不正确的方式将上下文传递给absractmodel。
答案 0 :(得分:2)
尝试将此作为上下文的替代(但很好的是上下文)
@api.multi
def print_report(self):
return {
'type':'ir.actions.report.xml',
'report_name': 'erp.report_id',
'datas': 'start': self.start_date, 'end': self.end_date}
}
@api.multi
def render_html(self, data):
report_obj = self.env['report']
report = report_obj._get_report_from_name('erp.report_id')
start = data.get('start')
end = data.get('end')
docs = self.env['erp.account'].search([('start_date','>=',start),('end_date', '<=', end)])
docargs = {
'doc_model': report.model,
'docs': docs
}
return report_obj.render('erp.report_id', docargs)