Getting issue in compute field for integer field in Odoo 13

615 views Asked by At

i am getting issue when applying compute method(_compute_days) in integer field(days) for odoo 13.

error is:-

lead.age.audit(,).days

my code is below:-

class crm_lead_age(models.Model):
    _inherit = 'crm.lead'
    
    age_audit = fields.One2many('lead.age.audit', 'lead_id', index=True, store=True)

class crm_lead_age_audit(models.Model):
    _name = 'lead.age.audit'
    
    lead_id = fields.Many2one('crm.lead')
    stage_id = fields.Many2one('crm.stage')
    date_in = fields.Date()
    date_out = fields.Date()
    days = fields.Integer(compute='_compute_days', store=True)
    
    @api.depends('date_in', 'date_out')
    def _compute_days(self):
        for res in self:
            if res.date_in and res.date_out:
                res.days = (res.date_out - res.date_in).days

Thanks in advance.

2

There are 2 answers

2
Pawan Kumar Sharma On BEST ANSWER

Issue solved by this code:

@api.depends('date_in', 'date_out')
def _compute_days(self):
     self.days = 0
     for res in self:
        if res.date_in and res.date_out:
            res.days = (res.date_out - res.date_in).days
1
Neural On

Try this

@api.depends('date_in', 'date_out')
    def _compute_days(self):
        for res in self:
            if res.date_in and res.date_out:
                d1=datetime.strptime(str(self.date_in),'%Y-%m-%d') 
                d2=datetime.strptime(str(self.date_out),'%Y-%m-%d')
                d3=d2-d1
                res.days=str(d3.days)