Перейти к содержимому
Меню
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Этот вопрос был отмечен
3 Ответы
11983 Представления

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

Аватар
Отменить
Лучший ответ

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.

Аватар
Отменить
Лучший ответ

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.

Аватар
Отменить