Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
4 Trả lời
14636 Lượt xem

how to pass two values in the on_change method in odoo 8 ?

like below

<field name='test' on_change="get_func(test,'string')"/>
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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.

Ảnh đại diện
Huỷ bỏ
Tác giả

can i pass 2 arguments in this methnod?

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

Câu trả lời hay nhất

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 """

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

@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.
Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 3 15
5316
1
thg 3 15
4360
0
thg 4 24
1853
4
thg 11 23
5946
1
thg 10 23
2022