콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
3 답글
11993 화면

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.

아바타
취소