1

how pass the value of a many2one field to a character field (Many2one--->Char), I don't know how to do (thank you in advance), Exemple :

Field Many2one and Char :

class ResCompany(models.Model):
    _inherit = 'res.company'

    manager_company = fields.Many2one('hr.employee')

class HrMission(models.Model):
    _name = 'hr.mission'

    manager_mission = fields.Char(string='manager', default=lambda self: self.default_manager())

    @api.model
    def default_manager(self):
       manager = self.env['res.company'].search([('manager_company','=', True).name
       return manager
Nabil Taleb
  • 137
  • 1
  • 12

1 Answers1

2

I know two way to do this:

# first using lambda 
# use lambda when a one line is enough to do the job like in your case 
# you can access the company record directly from the user pass in self 
# self.env.user
manager_mission = fields.Char(string='manager', default=lambda self: self.env.user.company_id.manager_company.name)




# when you need a lot of work this means that you need to define a method for this

# always define the method before the field like in all odoo apps
@api.model
def default_manager(self):
   manager = self.env.user.company_id.manager_company.name
   return managere


# Then define the field and directly affect the method to default
manager_mission = fields.Char(string='manager', default=default_manager)
Charif DZ
  • 14,415
  • 3
  • 21
  • 40