Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
4277 Zobrazení

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
Zrušit
Autor Nejlepší odpověď

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
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
úno 16
4055
1
pro 15
5978
1
srp 25
370
2
čvc 25
2819
3
čvc 25
632