Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
4307 Tampilan

I want in res.partner model make onchange event on field parent_id. this field already have onchange event by old api, so i changed it`s value on XML to on_change=1 and added .py code

 

@api.onchange('parent_id')
def onchange_parent_id(self, parent_id=None):
     old_res = super(res_partner, self).onchange_parent_id(self.parent_id.id)old_res = super(res_partner, self).onchange_parent_id(self.parent_id.id)
     if type(old_res) is dict and old_res.has_key('value'):
         for field, value in old_res.get('value').items():
             if hasattr(self, field):
                 setattr(self, field, value)setattr(self, field, value)
     if self.parent_id:
         self.category_id = self.parent_id.category_id
     return old_res
after update, then i open contact form and changing parent_id, everything works as i want, but when i press save error occurrs


File "/opt/odoo-vaimada/openerp/addons/base/res/res_partner.py", line 477, in _fields_sync    
context=context).get('value', {})
TypeError: onchange_parent_id() takes at most 2 arguments (6 given)


as i understand it occurrs becouse on create other method (_fields_sync) also calls this onchange_parent_id methot by 'old style'. Maybe someone can advice me how to fix this.

Thanks in advance

 

Avatar
Buang
Penulis Jawaban Terbai

work arround for me was change beginning of function:


@api.model    
@api.onchange('parent_id')
def onchange_parent_id_new(self, parent_id=None):
.....
Avatar
Buang
Post Terkait Replies Tampilan Aktivitas
1
Feb 16
4063
1
Des 15
6017
1
Agu 25
475
2
Jul 25
2888
3
Jul 25
678