我有5个字段
field_1: fields.char("Field")
field_2: fields.char("Field")
field_3: fields.char("Field")
field_4: fields.char("Field")
field_5: fields.selection((('Incomplete','Incomplete'),('Completed','Completed')),'Field'),
默认情况下,field_5将始终为' Incomplete':
_defaults = {
'field_5': 'Incomplete',
}
我的查询是当所有四个字段都有值时,field_5应自动更改为'已完成' 怎么做?
我写了一个on_change函数:
def on_change_module_code(self, cr, uid, ids, field_1,field_2,field_3,field_4):
if field_1 :
return {'value': {'field_5': 'Completed'}}
if field_2 :
return {'value': {'field_5': 'Completed'}}
if field_3 :
return {'value': {'field_5': 'Completed'}}
if field_4 :
return {'value': {'field_5': 'Completed'}}
用XML:
<field name="field_1" on_change="on_change_module_code(field_1,field_2,field_3,field_4)"/>
此处,当我输入第一个字段时,数据将转为“已完成”。但它应该转向“完成”#39;当所有字段都有价值时。
怎么做?
答案 0 :(得分:2)
写作怎么样
if field_1 and field_2 and field_3 and field_4:
return{'value': {'field_5' : 'Completed' }}
else:
return{'value': {'field_5' : 'Incomplete' }}
我还认为on_change方法应该在field_5 xml定义中:
<field name="field_5" on_change="on_change_module_code(field_1,field_2,field_3,field_4)"/>
这是因为field_5值取决于其他四个字段而不是field_1