如何在openerp中的同一类的另一个函数中使用一个函数变量?
我在fct1中有一个变量var_x。 我想在另一个函数fct2在同一类 代码使用相同的变量值:如何在openerp中的同一类的另一个函数中使用一个函数变量?
def onchange_blockcreate(self, cr, uid, ids, block):
global family_code_id
global varname
if block:
cr.execute ('select activefrom,activeto from new_block where id=%s ',(block,))
family_code_id =cr.fetchone()[0]
msgalert = {'title':'Warning','message':}
return {'warning':msgalert}
def onchange_evaluation_date(self, cr, uid, ids,family_code_id,activefrom):
print activefrom
print family_code_id
if activefrom>=family_code_id:
print activefrom
else :
msgalert = {'title':'Warning','message':'fieldtocheck is too short!'}
return {'warning':msgalert}
这里family_code_id在第一功能使用的,我想在第二功能使用相同family_code_id也。但它显示一个错误:
global variable family_code_id is not defined.
这是怎么可能在openerp?
你可能可以使用全局变量,但通常有更好的方法。
我的第一个建议是将family_code_id
字段传递给on_change
事件。你担心这两次电话会在客户端发生变化吗?如果没有,只需在onchange_blockcreate()
方法中添加family_code_id
参数,并将family_code_id
添加到XML文件的on_change
属性中的字段列表中。
如果你决定使用全局变量,你可能需要声明它在这两种方法全球,并在onchange_evaluation_date()
方法进行分配。全局变量通常是一个坏主意,而类成员变量通常更好。 OpenERP模型类是单身人士,所以你通常不想保持任何状态。一切都应该通过方法参数进来。
感谢您的帮助don.i有更多的想法 –
你必须定义在类拉布勒
像---->全球family_code_id变量以及类标号,则正常工作
你必须定义在类中的变量,而您可以通过调用self.variable_name
retrive在任何类中的函数,数据请修正你的代码的格式。每个缩进使用4个空格。不要混合标签和空格。 – eryksun