Odoo Help

6
3
napster
On 7/14/16, 5:29 AM

You can use the following method for implementing on_change method multiple fields with just one function.The fields must be in the same model.

in xml:

#in xml
<field name='test' on_change="get_func(test,'string')"/>
#and in python use
@api.multi
def get_func(self,value,field):
     ""here you can compare the field name and exec the desired lines using the if """

2
Nikunj Antala
On 7/13/16, 7:56 AM

Hello Nikhil,

As per odoo 8 api you can directly set on-change method using @api.onchange no need to set into XML.


Example:

@api.onchange('name')     
def onchange_name(self):
    self.name = 'what you want to save'

This function will execute when name field change.


Hope this helps.

can i pass 2 arguments in this methnod?

NIKHIL KRISHNAN
on 7/14/16, 5:20 AM

Why do you need to pass argument? because all fields of that model access directly in self... like. self.field name

Nikunj Antala
on 7/14/16, 6:06 AM
1
kirubanidhi
On 7/13/16, 8:08 AM

@api.onchange('staff_fname', 'staff_lname')

def funa(self):

if self.staff_fname and self.staff_lname:

s=(self.staff_fname or '') + (self.staff_lname or '')

self.staff_name = s.strip()

In this onchange function is execute when first anem and last anme are specified in your view.

Thanks

NIKHIL KRISHNAN
on 9/3/18, 2:29 AM

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 7/13/16, 7:17 AM
Seen: 2818 times
Last updated: 9/21/18, 5:23 AM