将带有上下文的数据传递给AbstractModel odoo

时间:2016-10-28 13:18:31

标签: python odoo-8

我可以将上下文传递给另一类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。

1 个答案:

答案 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)