跳至内容
菜单
此问题已终结
2 回复
5155 查看

Hi friends!!

Please who can help me?

I am really unable to resolve the problem.

In fact, i didnt understand the reason why the onchange is called when i press on the button create not on the field convention_id?!

Here is the code.

please help

XML:

<field name="convention_id" on_change="on_change_conventions_id(convention_id,company_id)" attrs="{'invisible': [('company_id','=',False)]}"/>

Python:

def get_inputs(self, cr, uid,ids, convention_id, company_id, context=None):

ret = []

obj = self.pool.get('seetek.convention.categorie.line')

obj_ids = obj.search(cr, uid, [('convention_id', '=', convention_id)])

res = obj.read(cr, uid, obj_ids, ['nom','nature','id'], context)

for r in res :

inputs = {

'company_convention_categorie_id': r['id'],

'company_id': company_id,

'nom': r['nom'],

'nature': r['nature'],

'actif': True,

}

ret += [inputs]

return ret

def on_change_conventions_id(self, cr, uid, ids, convention_id, company_id, context=None):

res = {'value':{'seetek_line_ids': self.get_inputs(cr, uid, ids, convention_id, company_id, context=context),

}

}

return res

形象
丢弃
最佳答案

hello,

Actually on change event is called when we change field on which we have defined on change function you are getting issue while clicking on create button because you have not added if condition of field in your function

try like this,

def get_inputs(self, cr, uid,ids, convention_id, company_id, context=None):

ret = []

if convention_id:

    obj = self.pool.get('seetek.convention.categorie.line')

    obj_ids = obj.search(cr, uid, [('convention_id', '=', convention_id)])

    res = obj.read(cr, uid, obj_ids, ['nom','nature','id'], context)

    for r in res :


hope it will slove your problem...

形象
丢弃
编写者 最佳答案

I have resolved the problem and it works fine:

Here is the answer:

def on_change_conventions_id(self, cr, uid, ids, convention_id, company_id, context=None):

if company_id == False:

My_error_Msg = 'Please, select your COMPANY'

raise osv.except_osv(_("Error!"), _(My_error_Msg))

else:

res = {'value':{'seetek_line_ids': self.get_inputs(cr, uid, ids, convention_id, company_id, context=context),

}

}

return res

It works perfectly :)

形象
丢弃
相关帖文 回复 查看 活动
0
3月 25
1291
0
1月 25
3396
1
8月 23
14713
1
8月 23
13316
1
7月 23
10349