This question has been flagged
3 Replies
10502 Views

Hi everybody,

I have many2one partner_id and one2many recommendation_ids fields in my form view. I need to return old partner_id value if there are some records in recommendation_ids field.

*.xml

<field name="partner_id" on_change="onchange_partner_id(partner_id, recommendation_ids)"/>
...
<field name="recommendation_ids" />

*.py

def onchange_partner_id(self, cr, uid, ids, partner_id, recommendation_ids, context=None):
    return {'value': old_partner_id}

Thanks

Avatar
Discard
Best Answer

Hi, onchange event does not save the result of the onchange function to the database. It is saved only when we click on the save button. So if you browse the current record and fetch the partner_id, it will fetch the older partner_id.

Avatar
Discard
Best Answer

Hello

You need to create 2 extra fields to achieve this things.

Hope below Example help full you and version should be above odoo 8.0

Define fields

partner_id = fields.Many2one('res.partner',  'Partner') # This standard field.

partner_id_new = fields.Many2one('res.partner',  'Partner New') # This custom field.

partner_id_old = fields.Many2one('res.partner',  'Partner' Old) # This custom field.

Define onchange method

@api.onchange('partner_id')

def onchange_partner_id(self):

    OldPartner = self.partner_id_new
    self.partner_id_new = self.partner_id
    self.partner_id_old = OldPartner

you can get old partner on partner_id_old fields.

 Best Thanks,
Ankit H Gandhi.

Avatar
Discard