Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
3 Răspunsuri
11974 Vizualizări

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

Imagine profil
Abandonează
Cel mai bun răspuns

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.

Imagine profil
Abandonează
Cel mai bun răspuns

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.

Imagine profil
Abandonează