This question has been flagged
3 Replies
4178 Views

How to copy field value in odoo . .

Let say i have two field called name and name1

i want to show name field and hide name1 field.

if i update name field it also need to upade name1 field. . .

Any idea other than on_change

Avatar
Discard
Best Answer

Hello,

You can set value on create and write method when you save the record.

    @api.model
def create(self, vals):
if vals.get('name'):
vals['name1'] = vals.get('name')
your_obj = super(your_obj, self).create(vals)
return your_obj

@api.model
def write(self, vals):
if vals.get('name'):
vals['name1'] = vals.get('name')
your_obj = super(your_obj, self).write(vals)
return True
Avatar
Discard
Best Answer

Hello,

I will definetively go for a functional field (stored in base if needed).

Assuming name is a char (but it will work for any type of field)


from openerp import api

@api.depends('name')
def _mimic_name(self):
for rec in self:
rec.name1 = rec.name

name = fields.Char('Name')
name1 = fields.Char('Name1', compute='_mimic_name', store=True)

As I said, store=True is optional, it depends of wheter you want the field to be persistant in database or calculated on the fly.

Hope it helps! 

Avatar
Discard
Best Answer

Use a related field

Avatar
Discard