Odoo Help

6
4 Answers
3
napster
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
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.

2 Comments
NIKHIL KRISHNAN
7/14/16, 5:20 AM

can i pass 2 arguments in this methnod?

Nikunj Antala
7/14/16, 6:06 AM

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

1
kirubanidhi
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.
1 Comment
NIKHIL KRISHNAN
9/3/18, 2:29 AM

Thanks

Ask a Question
Writer
Keep Informed
1 follower(s)
About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Register
Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now